Menü

Werkzeuge durchsuchenÄnderungsprotokoll

zum Navigieren zum ÖffnenBeschreiben Sie das Problem, nicht das Tool

Zeilen einer Textdatei sortieren, bereinigen und deduplizieren

Sortiert, trimmt, dreht und dedupliziert die Zeilen einer UTF-8-Textdatei im Browser. Großschreibung und Zahlen können bewusst behandelt werden, während die Quelldatei das Gerät nie verlässt.

Beliebige UTF-8-Textdatei, etwa eine Liste, ein Protokoll oder ein Export. Sie wird nur in diesem Tab gelesen und nirgendshin gesendet.

Entfernt führende und nachfolgende Leerzeichen. Diese lassen zwei scheinbar identische Zeilen sonst unterschiedlich erscheinen.

Eine Zeile nur aus Leerzeichen oder Tabulatoren gilt als leer, unabhängig davon, ob das Trimmen eingeschaltet ist.

Das erste Auftreten einer Zeile bleibt erhalten.

Aus bedeutet, dass Milch und milch als dieselbe Zeile gelten und zusammen sortiert werden. Ein hält sie getrennt.

Die Sortierung folgt englischen Kollationsregeln, damit akzentuierte Buchstaben neben ihren Grundformen stehen.

Wird zuletzt angewendet und dreht damit die bis dahin entstandene Reihenfolge um.

Zeilen in der Ausgabe
Anzahl der Zeilen in der heruntergeladenen Datei.
Zeilen in der Eingabe
Entfernte Duplikate
Entfernte Leerzeilen

So funktioniert es

Die feste Verarbeitungskette

Mehrere aktivierte Optionen werden in einer klaren Reihenfolge angewendet: zuerst Trimmen, danach leere Zeilen entfernen, dann Duplikate entfernen, sortieren und zuletzt umkehren. Diese Reihenfolge verhindert überraschende Ergebnisse. Zwei Zeilen, die sich nur durch Randabstände unterscheiden, werden beispielsweise erst nach dem Trimmen als Duplikate erkannt.

Beim Deduplizieren gewinnt immer das erste Auftreten. Ist die Großschreibungsunterscheidung ausgeschaltet, gelten „Milch“ und „milch“ als gleich, die Schreibweise des früheren Eintrags bleibt aber sichtbar.

Alphabetisch und natürlich sortieren

Die Sortierung stammt aus Intl.Collator, der Unicode-Kollation des Browsers. Eine feste englische Locale sorgt dafür, dass ein Kollege mit anderer Systemsprache dasselbe Ergebnis erhält. Akzentuierte Buchstaben stehen dabei in der Nähe ihrer Grundform, statt nach ihrem Codepunkt weit davon entfernt zu landen.

Die Option „Zahlen als Zahlen lesen“ ändert den Vergleich eingebetteter Ziffernfolgen:

Ohne natürliche SortierungMit natürlicher Sortierung
element1element1
element10element2
element2element10

Das ist eine Sortierhilfe, keine Interpretation von Versionen oder Datumswerten.

Leerzeilen und Zeilenumbrüche

Eine Zeile nur aus Leerzeichen oder Tabulatoren gilt als leer, auch wenn Trimmen ausgeschaltet ist. Inhaltliche Leerzeichen innerhalb einer Zeile bleiben dagegen unangetastet. Windows-, Unix- und ältere Mac-Zeilenumbrüche werden beim Einlesen erkannt; die heruntergeladene Datei verwendet einheitlich LF. Wer Bytegleichheit benötigt, sollte die Originaldatei behalten.

Datenschutz und Grenzen

Das Werkzeug akzeptiert Text als gültiges UTF-8. Ungültige Bytefolgen werden nicht geraten oder durch Ersatzzeichen versteckt. Die Verarbeitung und die Dateierzeugung laufen lokal im Browser, sodass auch Listen mit Adressen, Kennungen oder internen Exportwerten nicht an einen Sortierdienst übertragen werden.

So wird es gemacht

  1. Lies die Datei streng als UTF-8 und vereinheitliche Windows-, Unix- und ältere Mac-Zeilenumbrüche.
  2. Teile den Text an den Zeilenumbrüchen. Ein abschließender Zeilenumbruch erzeugt keine zusätzliche inhaltliche Leerzeile.
  3. Entferne auf Wunsch Leerzeichen und Tabulatoren an beiden Rändern jeder Zeile.
  4. Entferne auf Wunsch leere Zeilen. Eine nur aus Leerraum bestehende Zeile gilt auch ohne aktiviertes Trimmen als leer.
  5. Entferne auf Wunsch Duplikate und behalte jeweils das erste Auftreten. Die gewählte Großschreibungsregel bestimmt, welche Zeilen als gleich gelten.
  6. Sortiere auf Wunsch mit Intl.Collator nach englischer Unicode-Kollation und behandle eingebettete Ziffernfolgen optional als Zahlen.
  7. Kehre die bis dahin entstandene Reihenfolge auf Wunsch als letzten Schritt um und schreibe das Ergebnis mit Unix-Zeilenumbrüchen.

Wovon es ausgeht

  • Die Reihenfolge der Schritte ist fest: trimmen, Leerzeilen entfernen, deduplizieren, sortieren, umkehren. Eine spätere Option wirkt daher auf das bereits bereinigte Ergebnis.
  • Beim Deduplizieren bleibt das erste Auftreten erhalten. Wird anschließend sortiert, ändert sich dessen Position, aber nicht die erhaltene Schreibweise.
  • Groß- und Kleinschreibung nicht zu unterscheiden bedeutet, dass etwa Milch und milch dieselbe Zeile sind. Die zuerst vorkommende Schreibweise bleibt erhalten.
  • Die natürliche Sortierung behandelt Ziffernfolgen numerisch, sodass element2 vor element10 steht. Sie interpretiert keine Dezimaltrennzeichen, Datumswerte oder Versionsschemata.
  • Die Sortierung verwendet eine feste englische Kollation statt der Betriebssystemsprache. Dadurch ist das Ergebnis auf verschiedenen Geräten reproduzierbar, kann aber von einem deutschen Wörterbuchsortiment abweichen.
  • Die Ausgabe verwendet LF-Zeilenumbrüche und endet genau dann mit einem Zeilenumbruch, wenn mindestens eine Ausgabezeile vorhanden ist.
  • Binärdateien und ungültiges UTF-8 werden abgelehnt, statt ihre Bytes still als Text zu verfälschen.

Fragen

Wird meine Textdatei hochgeladen?

Nein. Die Datei wird in diesem Browser-Tab gelesen und dort verarbeitet. Vorschau und Download entstehen lokal; der Inhalt wird nicht zur Sortierung oder Bereinigung an einen Server gesendet.

Welche Schreibweise bleibt bei Duplikaten erhalten?

Immer das erste Auftreten nach einem möglichen Trimmen. Wenn Großschreibung ignoriert wird und zuerst „Milch“, später „milch“ steht, bleibt „Milch“ erhalten. Eine anschließende Sortierung verschiebt nur die Position dieser Zeile.

Was bedeutet „Zahlen als Zahlen lesen“?

Zusammenhängende Ziffern werden numerisch verglichen. Dadurch steht element2 vor element10, obwohl die Zeichenfolge „10“ alphabetisch vor „2“ beginnen würde. Komplexe Versionsnummern oder Datumsangaben werden dadurch nicht semantisch ausgewertet.

Werden Leerzeichen innerhalb einer Zeile entfernt?

Nein. Trimmen entfernt nur Leerzeichen und Tabulatoren vor dem ersten und nach dem letzten Inhalt einer Zeile. Abstände zwischen Wörtern oder Spalten innerhalb der Zeile bleiben vollständig erhalten.

Warum sieht die Sortierung anders aus als in einer deutschen Tabellenkalkulation?

Das Werkzeug verwendet absichtlich eine feste englische Unicode-Kollation, damit dieselbe Datei auf verschiedenen Geräten dieselbe Reihenfolge ergibt. Lokale Wörterbuchregeln können Umlaute und Sonderzeichen anders einordnen.

Bleibt das ursprüngliche Zeilenumbruchformat erhalten?

Nein. Beim Einlesen werden CRLF, LF und CR vereinheitlicht; die Ausgabe verwendet LF. Der sichtbare Zeileninhalt bleibt erhalten, aber die Datei ist deshalb nicht bytegleich mit dem Original.

Quellen