如何替换文件中的字符串?

如何替换文件中的字符串?

我在文件中有以下行,我想\N在两个逗号之间插入

20121128020001,2012-11-28 02:00:01.000,,,,,,,3.80,,,,,

我尝试使用种子

sed -i 's/,,/,\\N,/g' Test.CSV

我得到以下结果:

0121128020001,2012-11-28 02:00:01.000,\N,,\N,,\N,,3.80,\N,,\N,,

我可以运行两次,但在一个大文件中效率很低。如何修复 sed 命令?

答案1

将 Perl 与前瞻一起使用,以便第二个逗号不是匹配的一部分:

perl -pe 's/,(?=,)/,\\N/g'

或者,在同一行使用相同的表达式两次:

sed 's/,,/,\\N,/g;s/,,/,\\N,/g'

相关内容