Volker: UNIX - Leerzeichen in Zeilenumbrüche umwandeln

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

  1. 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

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. $ 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

      1. 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

      2. 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

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. 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

          1. 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

            --
            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
            debian/rules