Inhalte
Als wäre die IT Welt nicht schon so schwer genug, so gibt es nun auch noch unterschiedliche Zeilenenden-Zeichen in einer Dateie. In jeder Datei bzw. Textdatei befinden sich oftmals vielen Zeilen, die durch ein umbruch gekennzeichnet werden. Was das IT’ler Auge und ein Computer sieht, sind oftmals CR
LF
und NL
-Zeichen. Doch was bedeuten sie? In dieser kurzen Doku werde ich euch die Welt der Umbrüche erklären. Los geht’s…
Allgemein
Egal ob jetzt das CR, LF oder das NL Zeichen. Alle besitzen und existieren eigentlich nur für einen Zweck. Die Zeichen werden von Editoren gelesen und als Zeilenenden intepretiert. An der Stelle, wo das Zeichen aufkommt wird für den Leser der Datei ein Zeilenumbruch hinzugefügt. Der Curser wandert demnach eine Zeile weiter nach unten. Warum gibt es nun drei verschiedene Zeichen? Nun, dies hängt wie bei fast alle IT-Technologien an der Historie; Viele verschiedene Betriebssystemen und viele Entwickler bauten auch unterschiedliche Zeilenenden Interpreter. Jedes Betriebssystem besaß auch ein eigenen Zeilenenden-Zeichen. Leider funktionieren alle Zeilenenden-Intepreter auch nicht auf allen Betriebystemen, dass durchaus zu fehlerhaften oder nur schwer lesbaren Dateien führen kann. Mit der Zeit schlugen sich drei wesentliche Interpreter durch. Das CR, LF und das NL-Zeichen. Inzwischen können jedoch fast alle Betriebssystemen mit unterschiedlichen Zeilenenden-Intepreter auskommen.
Standards
Grundsätzlich kann man jedoch sagen, dass innerhalb eines Betriebssystemes die Interpreter gleichgesetzt sind. D.h. das Betriebssystem wandelt nach dem schlagen der ENTER Taste auch entsprehende zeichen um. So wird bei Windows oftmals die Kombination aus CR und LF verwendet. In der Unix/Linux Welt wird oftmals das LF verwendet. Hingegen in der Mac Welt nur das CR-Zeichen benutzt wird. Als kurze Erläuterung:
CR = carriagte return
LF = linefeed
NL = new line
Umwandeln
Will man Dateien in das richtige Format umwandeln, so gibt es verschiedene Methoden, um diese zu tun. Einer der beliebtesten ist sicherlich die Umwandlung mithilfe des Editors Notepad++. Hierzu öffnen wir die Datei und gehen auf Bearbeiten -> Format Zeilenende -> FORMAT
dos2unix
Will man schnell auf einer Linux Maschine die Datei umwandeln, so kann man dies mit dem dos2unix oder unix2dos Tool ganz leicht machen.
$ dos2unix datei.txt
oder von Unix zu DOS(Windows)
$ unix2dos datei.txt
sed
Mithilfe des Linux Tools sed (stream editor) kann man die Zeilenenden auch per Suche & Ersetzen Funktion umwandeln. Hierzu folgenen Code nehmen:
$ sed 's/^M$//' datei_input.txt > datei_output.txt
oder von Unix zu DOS(Windows)
$ sed 's/$'"/`echo \\\r`/" datei_input.txt > datei_output.txt
Perl
Auch mithilfe der von Perl mitgelieferten Suche & Ersetzen Funktion kann man die Zeilenenden umwandeln.
perl -pi -e 's/\r\n/\n/g' input.file
tr
Ein tr gefällig? tr steht für translate ist für solche Aufgaben nahezu perfekt.
tr -d '\r' < datei_input.txt > datei_output.txt
Egal wie!, Fakt ist jedoch, dass du jetzt der Umbruch-Experte bist und du dich jetzt mit der Materie auskennst. Also ab in die Kaffeeküche deiner Firma und rumprahlen. Sicherlich gibt es viele viele andere Ideen, wie man Datein in das richtige Format umwandelt. Falls du ein anderen Weg kennst, kann du dies gerne in einem Kommentar hinterlassen.