Linux-Zeilenumbrüche in Textdateien auf Windows-Format ändern

Ich erstelle unter Linux einige Logfiles, die ich auch gerne unter Windows anzeigen lassen würde. Der Editor meiner Wahl (PSPad) hat damit zwar kein Problem, aber der Standard-Texteditor notepad.exe, den „normale“ Benutzer verwenden, leider schon: Zeilenumbrüche werden als kleine Kästchen dargestellt und verunstalten den Text.

Mit sed oder awk kann man die Linux-Zeilenumbrüche (\n) aber recht einfach in Windows-Zeilenumbrüche (\r\n) umwandeln:

sed 's/$/\r/' linux.txt > windows.txt
awk 'sub("$", "\r")' linux.txt > windows.txt

Über uns Stefan

Polyglot Clean Code Developer

9 Kommentare

  1. Hallo Stefan,
    Ich bebutze deine Latex- Vorlage.. Danke dafür 🙂
    Bin durch Zufall noch auf diesen Blog gestoßen..

    Zum Thema:
    Es gibt für die Shell noch
    „dos2unix“
    und
    „unix2dos“

    Ich benutze Debian Linux, und musste (glaube ich) dafür ein Paket installieren.

    Gruß

  2. @Andreas: Danke für den Tipp 🙂

  3. Und was, wenn man auf einem Windows-System feststellt, dass die Datei keine kompatiblen Zeilenumbrüche hat? Gibts da auch was für Windows?

  4. Oh, die Lösung ist eigentlich einfach: Da alle Zeilenumbrüche UTF-8 kompatibel sind, kopiert man den Text in ein UTF-8-kompatibles Programm (z.B. in eine Textarea im Firefox) und wieder zurück in notepad.exe. Tada, alles in Windows-Zeilenumbrüchen. HTH

  5. ja, das ist klar, aber könntest du mir sagen wie du dies mit 432 dateien stapelverarbeitend machen würdest? würde mir sehr viel arbeit ersparen 😉

  6. @Flo: Du könntest dir mit ls die Dateien auflisten und diese mit for oder gleich über die Pipe durchgehen.

  7. Innerhalb eines Ordners geht es einfach mit
    dos2unix -k -o *.*
    dos2unix -k -o *.*

    (siehe auch man dos2linux)

  8. Sorry für die vielen Tippfehler, hier nochmal richtig:
    Innerhalb eines Ordners geht es einfach mit
    dos2unix -k -o *.*
    unix2dos -k -o *.*

    (siehe auch man unix2dos)

  9. Unter Windows gibt’s sed und (g)awk
    in den GNU utilities for Win32: http://unxutils.sourceforge.net/
    und bei GnuWin: http://gnuwin32.sourceforge.net/packages.html

    Es gibt auch den ein oder anderen Text-Editor mit Batch-Mode: http://www.smashingmagazine.com/2009/04/10/25-text-batch-processing-tools-reviewed/

    … und (mindestens) ein unix2dos für Windows: http://www.efgh.com/software/unix2dos.htm

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax