22 Stimmen

Textdateien mit gemischten Zeilenumbrüchen reparieren

Tutorial von Stefan Trost | 11.03.2022 um 20:19

Textdateien enthalten normalerweise einheitliche Zeichen für Zeilenumbrüche. Typischerweise sind dies die Zeichen CR LF (#0D #0A) in Textdateien, die unter Windows erstellt wurden oder das Zeichen LF (#0A) in Textdateien, die auf einem Linux, macOS oder anderem Unix-System gespeichert wurden.

Kompliziert kann es werden, wenn innerhalb von einer Datei mehrere verschiedene Zeilenumbruchszeichen auftauchen. Ein Grund dafür kann zum Beispiel sein, dass mehrere Textdateien aneinander gehängt wurden, die von verschiedenen Systemen stammen, ohne darauf zu achten, die Zeilenumbrüche vorher anzugleichen.

In diesem Tutorial möchte ich euch daher zeigen, wie ihr mit diesen Dateien umgehen könnt und euch eine Möglichkeit zeigen, die Dateien zu reparieren. Wir benutzen dafür das Programm TextEncoder, mit dem der Zeilenumbruchstyp von Textdateien geändert werden kann.

  1. Als erstes öffnen wir die betroffenen Textdateien im TextEncoder. Dafür können die betreffenden Dateien einfach auf das Programm gezogen werden. Es können beliebig viele Dateien gleichzeitig bearbeitet werden.
  2. Anschließend aktivieren wir auf der rechten Seite unter "Änderungen" die Option "Zeilenumbrüche".
  3. Darunter wählen wir unter "Einlesen als" die Option "Zeilenumbruch an jedem dieser Codepoints" aus der Drop-Down-Box. In das Textfeld darunter tragen wir alle Codepoints aller Zeilenumbruchstypen ein, an dem ein Zeilenumbruch realisiert werden soll. Wenn wir zum Beispiel eine Textdatei haben, in der die drei Zeilenumbruchtypen CR LF (#0D #0A), LS (#2028) und Tab (#09) vorkommen, tragen wir folgendes kommagetrennt ein: "#0D#0A,#2028,#09". Unter dieser Liste finden Sie weitere Erläuterungen zu dieser Option.
  4. In der Drop-Down-Box unter "Speichern als" wählen wir den einheitlichen neuen Zeilenumbruchstyp, den wir uns für unsere Datei wünschen. Zum Beispiel den Windows-Zeilenumbruch CR LF.
  5. Nun können wir in den "Speicheroptionen" festlegen, ob wir unsere Originaldateien überschreiben möchten oder die konvertierten Dateien unter einem neuen Namen abspeichern möchten.
  6. Danach können wir auf "Konvertieren und Speichern" klicken, um die Konvertierung aller Dateien in der Liste durchzuführen. Alle drei angegebenen Arten von Zeilenumbrüchen werden damit normalisiert und in den einheitlichen Zeilenumbruchtyp CR LF konvertiert.

Die Codepoints im Feld "Zeilenumbruch an jedem dieser Codepoints" können auf verschiedene Weise definiert werden. Im Beispiel oben nutzen wir die hexadezimale Schreibweise (zum Beispiel #0D#0A). Genauso ist aber auch die dezimale Schreibweise (13 10) möglich oder die Form U+000D U+000A. Alle Angaben können beliebig gemischt werden.

Auch sind wir nicht darauf angewiesen, die Zeilenumbruchzeichen in der Form von Codepoints zu definieren. Im Beispiel sind wir nur so vorgegangen, weil es sich um sonst nicht sichtbare Zeichen handelt. Wenn wir aber eine Datei mit lesbaren Zeilenumbruchzeichen einlesen möchten, können wir dafür auch die Option "Zeilenumbruch an jedem dieser Zeichen" auswählen und die Zeichen direkt definieren. Also zum Beispiel "a,b" wenn die Zeichen a und b für einen Zeilenumbruch stehen oder ",",";" wenn Zeilen durch ein Komma oder ein Semikolon begrenzt werden.

Konvertierung über die Kommandozeile

Die bisherigen Erklärungen erläutern das Vorgehen bei einer Konvertierung über die grafische Benutzeroberfläche. Mit der Batch-Version des TextEncoders ist darüber hinaus eine Konvertierung von Textdateien auch über die Kommandozeile oder über ein Skript möglich.

Das Beispiel von oben sieht mit einem Aufruf über die Kommandozeile folgendermaßen aus bei Konvertierung der Datei test.txt:

TextEncoder.exe -cl test.txt lb-read=customcps-#0D#0A,#2028,#09 lb=crlf

Wir benutzen den Parameter lb-read mit dem Wert customcps-#0D#0A,#2028,#09 um das Einlesen der Dateien zu steuern und den Parameter lb=crlf um das Speichern mit dem Zeilenumbruch CR LF zu realisieren. Statt customcps können wir in der gleichen Art auch den Parameter customstrs verwenden, falls wir leserliche Zeichen verwenden. Also zum Beispiel lb-read=customstrs-a,b für "a" und "b" als Zeichen für Zeilenumbrüche.

Eine Erklärung aller Parameter der Batch-Version finden Sie hier.

AntwortenPositivNegativ

Über den Autor

AvatarSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen

 

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.