csv-Dateien und Linefeed mit sed entfernen

20/06/2013 - 12:01 von Jakob Schürz | Report spam
Hi Leute!

Irgendwie komm ich mit sed nicht klar.
Ich hab eine csv-Datei, in der in manchen Zellen Zeilenumbrüche
vorhanden sind. Wenn ich diese csv-Dateinen mit vim ansehe (:set list),
sehe ich, dass diese Zeilenumbrüche entweder nur ein Zeilenumbruch sind,
oder ein Leerzeichen + Zeilenumbruch.

Der Befehl

%s/[^"]/ /g

in vim löst mir das Problem wunderbar, da die Textzellen in Gànsefüßchen
eingeschlossen sind.

ein

sed -e 's/[^"]/ /g' input.txt

dagegen bewirkt gar nichts. Was mache ich in sed falsch?

lg jakob

"Die Zuweisung erfolgt mit hoher Prioritàt und schlàft nicht. Dies ist
die Flagge, um Einsatz in Interrupt-Handler, unten Hàlften und andere
Situationen, in denen Sie kann nicht schlafen."
(aus http://de.how-to.mobi/index.php?id6343)
http://xundeenergie.wordpress.com
wertstoffe@nurfuerspam.de
 

Lesen sie die antworten

#1 Sascha Hüdepohl
20/06/2013 - 12:32 | Warnen spam
Hallo,

Jakob Schürz schrieb:

sed -e 's/[^"]/ /g' input.txt

dagegen bewirkt gar nichts. Was mache ich in sed falsch?



sed arbeitet auf den einzelen Zeilen. Das heißt es sieht immer nur
eine Zeile. Es bearbeitet dann diese Zeile und schreibt sie wieder
raus. Das Zeilenende kann man so nicht entfernen. Man kann zwar mit sed
Zeilen zusammenfassen, aber das ist in diesem Fall wohl zu aufwàndig.

Wenn Du nur die Zeilenumbrüche entfernen, bzw. durch
Leerzeichen ersetzen möchtest, dann ist vielleicht tr das geeignete
Werkzeug.

$ echo -e "Zeile1Zeile2Zeile3" | tr -d ''
Zeile1Zeile2Zeile3

$ echo -e "Zeile1Zeile2Zeile3" | tr '' ' '
Zeile1 Zeile2 Zeile3


HTH & HAND
Sascha

Ähnliche fragen