linux - 如何获取unix数据文件中每行的前n个字符

标签 linux unix awk cut

我正在尝试从 unix 数据文件中获取前 22 个字符。这是我的数据如下所示。

前 12 个字符是第 1 列,接下来的 10 个字符是第 2 列。

000000000001199998000180000     DUMMY RAG #         MFR NOT ST            1999980    ZZ-            0        0              0ZZ-
000000000002199998000180000     DUMMY RAG #         MFR NOT ST            1999980    ZZ-            0        0              0ZZ-
000000000003199998000180000     DUMMY RAG #         MFR NOT ST            1999980    ZZ-            0        0              0ZZ-
000000000004199998000180000     DUMMY RAG #         MFR NOT ST            1999980    ZZ-            0        0              0ZZ-
000000000005199998000180000     DUMMY RAG #         MFR NOT ST            1999980    ZZ-            0        0              0ZZ-
000000000006199998000180000     DUMMY RAG #         MFR NOT ST            1999980    ZZ-            0        0              0ZZ-

最佳答案

剪切:

$ cut -c-22 file
0000000000011999980001
0000000000021999980001
0000000000031999980001
0000000000041999980001
0000000000051999980001
0000000000061999980001

如果我理解第二个要求,您希望将前 22 个字符分成长度为 10 和 12 的两列。sed 是最好的选择:

$ sed -r 's/(.{10})(.{12}).*/\1 \2/' file
0000000000 011999980001
0000000000 021999980001
0000000000 031999980001
0000000000 041999980001
0000000000 051999980001
0000000000 061999980001

关于linux - 如何获取unix数据文件中每行的前n个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462529/

相关文章:

linux - 如何在 Ubuntu 中创建一个公共(public) HTML 文件夹?

bash - 从一行中提取列的值(变量)

linux - 如何使用 df 命令查找可用和已用内存总量

unix - diff'ing diffs with diff?

git - 使用 awk sed 解析更新 puppet 文件

unix - 根据字段分隔符将一行拆分为字符串

linux - 如何在终端中查看 HZ?

linux - Linux 中的 fork() 和 grep 是什么意思?

php - 从 putty 启动 PHPmyAdmin - 服务器是远程的

unix - 将行转置为列,在 shell 中保留一些行作为引用