Charakter ersetzen in spez. Bereich mittels sed

L

Lord_Snow

Grünschnabel
Liebe Unix-Experten,

Ich habe ein .csv-File Zeilen mit Datenangaben in der folgenden Form:
Code:
Zelle1,"Name, Vorname",Zelle3,Zelle4
Wenn ich dieses File (mittels text2xls) in ein xls-File transformiere, werden Name und Vorname aufgrund des dazwischen liegenden Delimiters , in zwei getrennte Zellen geschrieben, was ich nicht möchte.

Ich suche daher nach einer Möglichkeit, in jedem Bereich der mit ," beginnt und mit ", endet, das , zu escapen, zu löschen oder durch einen anderen String zu ersetzen.

Versucht habe ich das mittels sed:
Code:
sed -e '/,"/,/",/s/,//g' input.csv >output.csv
was im Konkreten darauf hätte abzielen sollen, in jedem Bereich der mit ," beginnt und mit ", endet, das , mit keinem Zeichen zu ersetzen. Funktioniert nur nicht, da so nach dem ersten ," alle , gelöscht werden.

Hat jemand einen Vorschlag für mich?

Vielen Dank,
LS
 
Zuletzt bearbeitet:
Ich habe jetzt einen Workaround gefunden. Nachdem es das zweite , in jeder Zeile ist, das stört, funktioniert:
Code:
sed 's/,//2' input.csv >output.csv
 
Zurück
Oben