Zeilen sortieren, deduplizieren und bereinigen

Zeilen sortieren, Duplikate und leere Zeilen entfernen, Leerzeichen trimmen.

Über dieses Tool

Füge eine Liste ein und räume sie auf: Leerzeichen trimmen, leere Zeilen entfernen, Duplikate entfernen (optional ohne Beachtung der Groß-/Kleinschreibung) und alphabetisch, natürlich (item2 vor item10), nach Länge oder umgekehrt sortieren oder zufällig mischen.

So verwendest du es

  1. Füge eine Liste mit einem Eintrag pro Zeile ein.
  2. Wähle, was bereinigt werden soll: Leerzeichen trimmen, leere Zeilen entfernen, Duplikate entfernen (optional ohne Beachtung der Groß-/Kleinschreibung).
  3. Wähle eine Sortierung: natürlich, A bis Z, Z bis A, nach Länge, umgekehrt oder gemischt.
  4. Kopiere das Ergebnis. Die Statuszeile zeigt, wie viele Zeilen und Duplikate entfernt wurden.

Fragen

Was ist natürliche Sortierung?
Natürliche Sortierung vergleicht Zahlen im Text nach ihrem Wert, sodass item2 vor item10 kommt. Eine rein alphabetische Sortierung würde item10 zuerst einordnen, weil 1 vor 2 kommt.
Welches Duplikat bleibt erhalten?
Das erste Vorkommen jeder Zeile bleibt erhalten, spätere Kopien werden entfernt. Die ursprüngliche Reihenfolge bleibt also erhalten, sofern du nicht zusätzlich sortierst.
Ist das Mischen zufällig genug für eine Verlosung?
Es nutzt den kryptografisch sicheren Zufallsgenerator des Browsers mit einem unverzerrten Fisher-Yates-Mischverfahren, daher ist jede Reihenfolge gleich wahrscheinlich.
Warum werden manche doppelten Zeilen nicht entfernt?
Die Zeilen sehen gleich aus, sind aber nicht identisch. Häufige Ursachen sind unsichtbare Zeichen: ein geschütztes Leerzeichen statt eines normalen in der Zeile, ein von einer Webseite kopiertes Leerzeichen mit Nullbreite oder zwei Unicode-Formen desselben Buchstabens mit Akzent. „Leerzeichen trimmen“ säubert nur die Enden einer Zeile, und ist „Groß-/Kleinschreibung ignorieren“ aus, bleiben Apple und apple getrennt.
Kann ich zählen, wie oft jede Zeile vorkommt?
Hier nicht. Die Statuszeile zeigt nur, wie viele Duplikate insgesamt entfernt wurden. Zum Zählen der Vorkommen nimmst du die Shell: sort list.txt | uniq -c | sort -rn gibt jede unterschiedliche Zeile mit ihrer Anzahl aus, die häufigste zuerst.
Wie viele Zeilen schafft das Tool?
Es gibt kein festes Limit. Listen mit Zehntausenden Zeilen werden schon beim Tippen verarbeitet, und „Datei öffnen“ akzeptiert Textdateien bis 50 MB. Alles läuft in deinem Browser, bei sehr großen Dateien hängt es also vom Arbeitsspeicher deines Geräts ab, und nichts wird hochgeladen.

Doppelte Zeilen aus einer Liste entfernen: so geht’s

Füge die Liste ein, lass „Duplikate entfernen“ aktiviert, und jede Zeile, die schon weiter oben vorkam, fällt weg. Mit „Groß-/Kleinschreibung ignorieren“ gelten Apple und apple als dieselbe Zeile, und die Schreibweise der ersten bleibt erhalten. „Leerzeichen trimmen“ läuft vor dem Deduplizieren, sodass „apple “ mit abschließendem Leerzeichen zu „apple“ passt – der häufigste Grund, warum beim Deduplizieren offensichtliche Kopien scheinbar übersehen werden. Die Statuszeile zeigt die Zeilenzahl vorher und nachher.

Typische Anwendungen sind das Bereinigen einer Mailingliste vor einem Import, das Zusammenführen zweier Listen von Hostnamen oder Paketnamen und das Auflisten der eindeutigen Werte einer Tabellenspalte, die du direkt aus Excel kopieren und einfügen kannst. Bei E-Mail-Adressen ist „Groß-/Kleinschreibung ignorieren“ meist richtig, weil Domains nicht zwischen Groß- und Kleinschreibung unterscheiden und die meisten Anbieter das auch im Namensteil nicht tun. Bei Dateipfaden und IDs, bei denen die Schreibweise zählt, schalte es aus.

Zeilen online sortieren vs. Unix-Befehl sort

„A bis Z“ und „Z bis A“ sortieren Zeilen nach den Locale-Regeln deines Browsers und ignorieren dabei Groß-/Kleinschreibung und Akzente, sodass apple, Banana und Éclair in Wörterbuchreihenfolge erscheinen. Reines Sortieren nach Byte-Reihenfolge, wie bei sort mit LC_ALL=C oder bei Array.prototype.sort() ohne Vergleichsfunktion, stellt jeden Großbuchstaben vor jeden Kleinbuchstaben und Buchstaben mit Akzent hinter z. „Nach Länge“ stellt die kürzesten Zeilen nach vorn und ordnet Gleichstände in natürlicher Reihenfolge.

Zum Vergleich die Unix-Entsprechungen: sort -u sortiert und entfernt Duplikate, sort -f ignoriert die Groß-/Kleinschreibung, sort -V sortiert natürlich bzw. nach Versionsnummern, und uniq entfernt nur direkt aufeinanderfolgende Duplikate und läuft deshalb meist nach sort. Anders als uniq entfernt dieses Tool Duplikate an jeder Stelle der Liste und kann die ursprüngliche Reihenfolge behalten, wenn „Sortieren“ auf „Reihenfolge beibehalten“ steht. „Mischen“ bringt die Liste in eine zufällige Reihenfolge, „Neu mischen“ erzeugt eine neue.

Leere Zeilen entfernen und Leerraum trimmen: so geht’s

„Leere Zeilen entfernen“ verwirft Zeilen, die leer sind oder nur Leerzeichen und Tabs enthalten, damit die Lücken vom Kopieren einer Tabelle oder eines Logs nicht übrig bleiben. „Leerzeichen trimmen“ entfernt führenden und abschließenden Leerraum aus jeder Zeile, auch Tabs und die geschützten Leerzeichen, die oft aus Webseiten und PDFs stammen. Schalte das Trimmen aus, wenn die Einrückung wichtig ist, etwa in einem YAML-Block oder einem Python-Snippet, und entferne nur die leeren Zeilen.

Die Zeilenenden werden dabei normalisiert. Windows-CRLF- und Unix-LF-Eingaben werden beide korrekt in Zeilen zerlegt, und das Ergebnis verwendet immer LF. Damit sind die Zeilenwerkzeuge ein schneller Weg, eine aus Excel oder einer Windows-Textdatei kopierte Liste zu bereinigen, bevor du sie in ein Shell-Skript, eine .gitignore-Datei oder eine Konfiguration einfügst. Bei langen Listen speichert „Herunterladen“ das Ergebnis als lines.txt.

Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden