ファイル内の文字列を置き換える方法は?

ファイル内の文字列を置き換える方法は?

ファイルに次の行があり、\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

2番目のコンマが一致の一部にならないように、プレビューでPerlを使用します。

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

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

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

おすすめ記事