UNIX - Leerzeichen in Zeilenumbrüche umwandeln
Volker
- sonstiges
2 Mathias Brodala0 Volker
Hallo zusammen,
ich kenne mich noch nicht so gut mit UNIX aus, deshalb die Frage, ob es einen Befehl im Terminal unter MacOSX gibt, der in einer txt-Datei Leerzeichen in Zeilenumbrüche verwandelt?
Ich habe eine Datei bestehend aus Wörtern und will diese so formatieren, dass nur jeweils ein Wort ein einer Zeile steht.
Danke im Voraus für Antworten.
Gruß, Volker
Hallo Volker.
ich kenne mich noch nicht so gut mit UNIX aus, deshalb die Frage, ob es einen Befehl im Terminal unter MacOSX gibt, der in einer txt-Datei Leerzeichen in Zeilenumbrüche verwandelt?
Ich habe eine Datei bestehend aus Wörtern und will diese so formatieren, dass nur jeweils ein Wort ein einer Zeile steht.
Beispielhaft per SED:
$ echo "Foo Bar Baz" > foo
$ sed -i 's| |\n|g' foo
$ cat foo
Foo
Bar
Baz
Hierbei gibt „'s| |\n|g'“ die Ersetzung aller gefundenen Leerzeichen durch Zeilenumbrüche an; der Parameter „-i“ sorgt dafür, dass die Quelldatei direkt bearbeitet wird. Ist dies nicht gewünscht, sollte darauf verzichtet und die Ausgabe des sed-Kommandos in eine andere Datei umgeleitet werden.
Einen schönen Dienstag noch.
Gruß, Mathias
$ sed -i 's| |\n|g' foo
Exakt dieser Befehl ersetzt alle Leerzeichen durch n's.
Anscheinend ist ein Zeilenumbruch in einer txt-Datei anders definiert. Nur wie??
Gruß, Volker
Aaaah, mit
cat datei.txt | tr " " "\012" > datei.txt.unix
geht es. Trotzdem danke für den sed-Hinweis, damit hab ich mich auf helfende Seiten durchgegooglelt.
Gruß, Volker
Hallo Volker.
$ sed -i 's| |\n|g' foo
Exakt dieser Befehl ersetzt alle Leerzeichen durch n's.
Hm, kann nicht sein. Es könnte höchstens sein, dass sich der sed auf Mac OS X anders verhält als der meinige.
Anscheinend ist ein Zeilenumbruch in einer txt-Datei anders definiert. Nur wie??
LF, also „\n“.
Einen schönen Dienstag noch.
Gruß, Mathias
Wie schon in meiner Antwort auf mein eigenen Beitrag (okeh, vielleicht nicht ganz so geschickt, ich geb's ja zu ;-) gesagt:
Diese Lösung funktioniert
cat datei.txt | tr " " "\012" > datei.txt.unix
Aber danke für den sed-Hinweis, mit dem konnte ich das zusammengooglen.
Gruß, Volker
Hallo Volker.
Wie schon in meiner Antwort auf mein eigenen Beitrag (okeh, vielleicht nicht ganz so geschickt, ich geb's ja zu ;-) gesagt:
Ich hatte deine (wohl platzierte) Antwort schon gesehen, mich aber dennoch über das Verhalten deines seds gewundert.
Einen schönen Dienstag noch.
Gruß, Mathias