
\N
Ich 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'