如何替換文件中的字串?

如何替換文件中的字串?

我在文件中有以下行,我想\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'

相關內容