ファイル内の文字列を置き換えるにはどうすればいいですか?

ファイル内の文字列を置き換えるにはどうすればいいですか?

ファイルに次の行があり、\N2つのカンマの間に挿入したいのですが

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,,

2 回実行することはできますが、巨大なファイルでは非効率的です。sed コマンドを修正するにはどうすればよいですか?

答え1

先読み機能付きの Perl を使用して、2 番目のコンマが一致に含まれないようにします。

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

または、同じ行に同じ式を 2 回使用します。

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

関連情報