Ich habe eine Datei, die |
als Trennzeichen verwendet. Einige der Datensätze haben leere Zellen ||
(nichts darin). Ich versuche, sie mit dem |""|
folgenden sed-Befehl zu ersetzen:
sed -i 's/\|\|/\|""|/g' file
Aber das Ergebnis entsprach nicht meinen Erwartungen.
Eingabedatei
A|B|C|D|||E
Gewünschte Ausgabe:
A|B|C|D|""|""|E
Beachten Sie, dass am Anfang und Ende der Datensätze kein „|“ steht.
Jede Hilfe wäre willkommen.
Antwort1
Wiederholen Sie die Ersetzung einfach, bis sich die Ausgabe nicht mehr ändert:
$ echo 'A|B|C|D|||E' | sed ':X;s/||/|""|/g;tX'
A|B|C|D|""|""|E
Wo
:X
setzt das LabelX
t X
gehe zum LabelX
, wenns///
es erfolgreich war