有没有Linux方法(awk、sed、grep等)在文件的每一行中的特定索引处插入字符?
例如下面是file.txt的内容

0067011990999991950051507004+68750+023550FM-12+038299999V0203301N00671220001CN9999999N9+00001+99999999999
0043011990999991950051512004+68750+023550FM-12+038299999V0203201N00671220001CN9999999N9+00221+99999999999

我想在file.txt中每一行的给定索引(比如15、19、88和93)处插入一个逗号,以便结果如下:
006701199099999,1950,051507004+68750+023550FM-12+038299999V0203301N00671220001CN9999999N9+,00001,+99999999999
004301199099999,1950,051512004+68750+023550FM-12+038299999V0203201N00671220001CN9999999N9+,00221,+99999999999

最佳答案

最简单的sed

sed 's/\(.\{93\}\)/&,/;s/\(.\{88\}\)/&,/;s/\(.\{19\}\)/&,/;s/\(.\{15\}\)/&,/' YourFile

顺序很重要,否则下次更改时需要记住添加的字符
你可以马上做,但需要一些解释
sed 's/\(.\{15\}\)\(.\{4\}\)\(.\{69\}\)\(.\{5\}\)/\1,\2,\3,\4/' YourFile

10-04 13:23