Filter fĂĽr Textdateien

Ich habe eine Textdatei, in der ich gerne in jeder zweiten Zeile das Newline-Zeichen (\n) entfernen wĂĽrde. Wie kann ich das automatisieren?

vorlesen Druckansicht
Lesezeit: 1 Min.

Ich habe eine Textdatei, in der ich gerne in jeder zweiten Zeile das Newline-Zeichen (\n) entfernen wĂĽrde. Wie kann ich das automatisieren?

Diese Aufgabe erledigt zum Beispiel das Kommandozeilenwerkzeug sed für Sie. Unter unixoiden Betriebssystemen wie Linux oder Mac OS X ist es meist schon installiert. Unter Windows müssen Sie zuerst MSYS installieren (siehe c’t-Link).

Sobald Sed einsatzbereit ist, fĂĽhren Sie den folgenden Befehl aus:

sed 'N; s/\n//' Eingabe.txt > Ausgabe.txt

Bei einer Eingabe-Datei mit dem Format

AAA
BBB
CCC

erhalten Sie als Ergebnis:

AAA
BBB
CCC

Zur Erklärung: Das N ist die Anweisung an Sed, zur nächsten Zeile zu springen, der Befehl danach ist eine einfache Ersetzungsanweisung („ersetze \n durch nichts“). Bitte beachten Sie, dass der Befehl zum Entfernen aller Newlines in einem Text mit Sed um einiges komplexer ist (sed ': SCHLEIFE; N; $! b SCHLEIFE; s/\n//g' Eingabe.txt) und hier dann besser das deutlich schnellere und einfacher zu lesende paste -s -d ' ' Eingabe.txt verwendet werden sollte. Die Leerzeichen in den Sed-Befehlen dienen nur der Verbesserung der Lesbarkeit und sind nicht notwendig.

www.ct.de/1226164 (rop)