Wie kann ich eine Zeichenfolge in einer Datei ersetzen?

Wie kann ich eine Zeichenfolge in einer Datei ersetzen?

\NIch habe die folgende Zeile in einer Datei, die ich zwischen zwei Kommas einfügen möchte

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

Ich habe versucht, Samen zu verwenden

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

Wobei ich folgendes Ergebnis erhalte:

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

Ich könnte es zweimal ausführen, aber bei einer großen Datei ist das ineffizient. Wie kann ich den sed-Befehl reparieren?

Antwort1

Verwenden Sie Perl mit Lookaheads, sodass das zweite Komma nicht Teil der Übereinstimmung ist:

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

Oder verwenden Sie denselben Ausdruck zweimal in derselben Zeile:

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

verwandte Informationen