如何使用 ';' shell 脚本分隔一行的多个部分?



我有一个'。GS3的文件有多行,像这样:

0123456789  aaa.aaa3456

我想这样分开:

01234;56789  ;aaa.aaa;3456

我知道这行每一部分的开始和结束。考虑到多条线,是否有可能做到这一点?例如:

0123456789  aaa.aaa3456
aaaaabbbbbbbxxxxxxxwwww

01234;56789  ;aaa.aaa;3456
aaaaa;bbbbbbb;xxxxxxx;wwww

…但如果它有固定长度,你可以这样做:

$ sed -r 's/^(.{5})(.{7})(.{7})(.{4})$/1;2;3;4/' test.txt 
01234;56789  ;aaa.aaa;3456
aaaaa;bbbbbbb;xxxxxxx;wwww

我认为.{5}是不言而喻的。由于-r选项的存在,第一组(.{5})可以被1引用。这是一个由()组成的组。

字符^$表示文件test.txt中每行的开始和结束。

最新更新