如何在unix数据文件中获取前n个字符

Tej*_*eja 41 unix linux 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-
Run Code Online (Sandbox Code Playgroud)

Chr*_*our 76

cut:

$ cut -c-22 file
0000000000011999980001
0000000000021999980001
0000000000031999980001
0000000000041999980001
0000000000051999980001
0000000000061999980001
Run Code Online (Sandbox Code Playgroud)

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

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