0
Words
0
Characters
0
No spaces
0
Lines
0
Paragraphs
0
Sentences
0 min
Reading time
Lines to sort
Sorted output

Zeilen sortieren: Text alphabetisch online sortieren

Liste einfügen, Reihenfolge wählen, sortiertes Ergebnis bekommen. Mit oder ohne Beachtung der Groß-/Kleinschreibung, aufsteigend oder absteigend, mit natural sort für Dateinamen und Versions-Strings.

Was ist das Tool zum Sortieren von Zeilen?

Ein kostenloses, im Browser laufendes Tool, das einen Textblock nimmt, ihn an Zeilenumbrüchen aufteilt, die Zeilen sortiert und das Ergebnis zurückgibt. Keine Anmeldung, kein Upload, nichts verlässt deinen Rechner. Einfügen, klicken, kopieren.

Es entspricht dem Aufruf von sort auf der Kommandozeile, nur dass du dich hier nicht mit LC_COLLATE herumschlagen musst, nicht damit, dass macOS ein älteres BSD-sort mitbringt, oder damit, dass Windows ohne Git Bash gar kein sort hat. Drei Checkboxen decken die Fälle ab, die du wirklich willst: aufsteigend oder absteigend, mit oder ohne Beachtung der Groß-/Kleinschreibung, und natural sort, damit file2 vor file10 kommt.

Wenn du schon mal eine Dependency-Liste in package.json eingefügt und dich gefragt hast, warum npm sie beim nächsten install neu sortiert hat: dieses Tool reproduziert genau, was npm 7+ tut, sodass das Diff in der CI leer bleibt.

Wie das sort tatsächlich funktioniert

Unter der Haube nutzt das Tool die Intl.Collator-API des Browsers. Das gibt dir eine Vergleichsfunktion, die Unicode versteht, so wie es der Unicode Collation Algorithm (UTS #10) definiert, und nicht nur einen rohen codepoint-Vergleich. Der praktische Unterschied: Intl.Collator weiß, dass é neben e einsortiert wird, dass das deutsche ß auf der primären Ebene gleich ss ist, und dass Groß- und Kleinschreibung sich erst auf der tertiären Ebene unterscheiden.

Lexicographic sort und gebietsschemabewusstes sort sind nicht dasselbe. Ein reines codepoint-sort (was LC_ALL=C sort liefert) stellt jeden Großbuchstaben vor jeden Kleinbuchstaben, weil A U+0041 und a U+0061 ist. Ein Unicode-Default-Collation-Sort verschachtelt sie: A < a < B < b < C. Standard ist die gebietsschemabewusste Reihenfolge, weil sie dem entspricht, was Leute erwarten, wenn sie in Excel oder Google Sheets auf Sort A-Z klicken. Setze den Haken bei case-sensitive, um auf die codepoint-artige Reihenfolge zurückzufallen.

natural sort ist die dritte Achse. Damit aktiviert kommt file2.log vor file10.log, weil eingebettete Zahlen als Zahlen verglichen werden, nicht zeichenweise. Wikipedia hat eine saubere Erklärung der alphanumerischen Sortierung, falls du den Hintergrund willst. Die Implementierung nutzt die Option numeric: true von Intl.Collator, dieselbe Primitive, die Finder, Windows Explorer und neuere Versionen von GNU sort -V verwenden.

In drei Schritten Zeilen sortieren

Ein Eingabe-Pane, ein Ausgabe-Pane. Alles läuft lokal; schließe den Tab und dein Text ist weg.

  1. 1

    Zeilen einfügen

    Wirf deine Liste in den Editor, ein Eintrag pro Zeile. Leere Zeilen am Ende sind kein Problem. CRLF und LF funktionieren beide; die Ausgabe wird auf LF normalisiert, sofern du nichts anderes sagst. Der Sample-Button füllt den Editor mit einer kleinen gemischten Liste, falls du alle drei Optionen erst einmal in Aktion sehen willst.

  2. 2

    Sort-Optionen wählen

    Wähle Aufsteigend oder Absteigend, schalte Case-sensitive ein, wenn du brauchst, dass Apple vor banana kommt, und aktiviere Natural sort, wenn Dateinamen oder Versionen mit im Spiel sind. Leere Zeilen entfernen wirft leere Zeilen vor dem Sortieren raus; Duplikate entfernen fasst Wiederholungen zusammen.

  3. 3

    Sortiertes Ergebnis kopieren

    Drück Sort. Das Ergebnis landet im Ausgabe-Pane. Mit Kopieren in die Zwischenablage, mit Download als .txt-Datei speichern. Der Zeilenzähler im Header zeigt, wie viele Zeilen herauskamen, was praktisch ist, wenn du Dedup eingeschaltet hast und wissen willst, wie viele Duplikate entfernt wurden.

Wann Zeilen sortieren das richtige Werkzeug ist

E-Mail-Liste vor einem Kampagnenversand sortieren

Marketing fügt eine CSV mit Abonnentenadressen ins Kampagnen-Tool ein, aber die Liste kam in Anmeldereihenfolge. Sortiere sie hier zuerst alphabetisch, mit case-insensitive eingeschaltet (E-Mail-Local-Parts sind in der Praxis ohnehin case-insensitive), dann dedupliziere. Der Import im Kampagnen-Tool wird schneller, und einen Tippfehler-Domain wie gmial.com erkennst du sofort, weil sie direkt neben dem legitimen gmail.com-Block steht.

CSS-Klassennamen oder HTML-Attributreihenfolge alphabetisieren

Manche Teams erzwingen alphabetische Klassennamen in class="..."-Attributen, damit PR-Diffs sauber bleiben. Wert einfügen, sortieren, zurückkleben. Derselbe Trick funktioniert für die HTML-Attributreihenfolge, wenn ein Linter meckert, oder für das manuelle Sortieren von Tailwind-Utility-Klassen, wenn prettier-plugin-tailwindcss nicht im Repo installiert ist.

Eine .gitignore sortieren, damit künftige PRs sauber diffen

Eine .gitignore, an die alle anhängen, wird zur Krimskrams-Schublade. Einmal alphabetisch sortieren, committen, und ab dann landen Ergänzungen an offensichtlichen Stellen und das Diff ergibt für Reviewer Sinn. Dasselbe gilt für .dockerignore, .eslintignore und das files-Array in tsconfig.json, wenn Teams eines pflegen.

Eine aus dem Chat eingefügte TODO-Liste aufräumen

Slack und Discord werfen Listen mit seltsamer Reihenfolge, halbleeren Zeilen und Duplikaten von Leuten heraus, die zweimal dasselbe gesagt haben. Einfügen, Leere Zeilen entfernen und Duplikate entfernen aktivieren, sortieren. Du bekommst eine saubere, geordnete Liste, die du in deinen Task-Tracker werfen kannst.

Liste von Länder-, Flughafen- oder Währungscodes sortieren

ISO-3166-Ländercodes, IATA-Flughafencodes, ISO-4217-Währungscodes: leben alle in Lookup-Dateien, die vom Sortieren profitieren. natural sort braucht es hier nicht, weil die Codes feste Breite haben, aber case-insensitive ist wichtig, weil manche Quellen USD mit usd mischen. Sortieren, deduplizieren, zurück in die Lookup-Tabelle einfügen.

Liste von package.json-Abhängigkeiten sortieren

package.json-Dependency-Keys werden von npm 7+ bei jedem install alphabetisch geordnet, aber wenn du an einem Projekt arbeitest, das noch auf npm 6 (oder yarn 1) festgenagelt ist, ändert sich die Reihenfolge nicht von selbst. Dependency-Keys einfügen, A-Z sortieren, zurückkleben. Dein nächster PR hat dann keinen 200-Zeilen-Reorder-Commit über der eigentlichen Änderung.

Zeilen sortieren: Schnellreferenz

Ein kurzer Spickzettel zu den Sort-Optionen, die dieses Tool bietet, und den Randfällen, die sie abdecken.

TopicWhat this tool does
Lexicographic vs collationLexicographic-(codepoint-)sort sortiert nach rohem Unicode-Wert: A (U+0041) vor a (U+0061). Collation-sort folgt dem Unicode Collation Algorithm und verschachtelt die Fälle. Dieses Tool nutzt collation als Standard; setze Case-sensitive für codepoint-Reihenfolge.
Groß-/KleinschreibungStandard ist case-insensitive: apple, Apple und APPLE vergleichen gleich. Wechsle auf case-sensitive für die Reihenfolge A < a < B < b auf der tertiären Collation-Ebene oder, in Kombination mit der C-Locale, für rohe codepoint-Reihenfolge.
Natural sortEingeschaltet: file2 < file10, weil 2 und 10 als Zahlen verglichen werden. Ausgeschaltet: file10 < file2, weil 1 (U+0031) zeichenweise kleiner ist als 2 (U+0032). Nimm es für Dateinamen, Versions-Strings und jede Liste mit eingebetteten Zahlen.
Locale-BewusstseinSort respektiert die Seiten-Locale, also ordnet sich é auf Französisch neben e ein, das deutsche ä sortiert in der DIN-5007-2-Telefonbuch-Reihenfolge wie ae, und so weiter. Das unix-sort macht dasselbe, wenn LC_COLLATE gesetzt ist; LC_ALL=C sort fällt auf codepoint-Reihenfolge zurück, schneller, behandelt Akzente aber wie fremde Buchstaben.
Behandlung leerer ZeilenLeere Zeilen sortieren beim Aufsteigend vor jeder nicht leeren Zeile, also clustern sie oben. Setze Leere Zeilen entfernen, um sie ganz loszuwerden. Ein abschließender Zeilenumbruch am Ende der Eingabe wird so erhalten, wie er ist, sodass die Ausgabe sauber durch cat und ähnliche Werkzeuge round-trippt.
StabilitätDas sort ist stabil: Zeilen, die unter deinen Einstellungen gleich vergleichen, behalten ihre ursprüngliche relative Reihenfolge. Das zählt, wenn du nach einem Präfix oder im case-insensitive-Modus sortierst und die Eingabereihenfolge innerhalb einer Gleichstandsgruppe erhalten willst. Sowohl V8 (Chrome, Edge, Node) als auch SpiderMonkey (Firefox) garantieren seit 2019 stabiles Array.prototype.sort.
Zeilenenden (LF vs CRLF)Die Eingabe wird an \r\n, \n und \r getrennt. Die Ausgabe wird standardmäßig mit \n verbunden, damit sie sauber in Linux- und macOS-Workflows passt. Wenn du CRLF für ein Windows-Tool brauchst, füge das Ergebnis in einen Windows-fähigen Editor ein und speichere mit dem gewünschten Zeilenende.
KodierungDie Eingabe wird als UTF-8 behandelt (Text im Browser ist bereits dekodiert). Eine führende UTF-8-BOM wird in der ersten Zeile erhalten, falls vorhanden; willst du sie loswerden, entfernt das Schwester-Tool whitespace-cleaner sie.

Zeilen sortieren: häufig gestellte Fragen

Was ist die Standard-Sort-Reihenfolge?

Aufsteigend, gebietsschemabewusst, mit dem Intl.Collator des Browsers in der Seiten-Locale. Das heißt A < a < B < b, so wie Excel und Google Sheets sortieren, nicht die rohe codepoint-Reihenfolge, in der jeder Großbuchstabe vor jedem Kleinbuchstaben steht. Willst du codepoint-Reihenfolge, setze die Option Case-sensitive: das schaltet den Collator auf einen strengen tertiären Vergleich um und ergibt dieselbe Reihenfolge wie LC_ALL=C sort.

Ist das sort case-sensitive oder case-insensitive?

Standardmäßig case-insensitive. Apple, apple und APPLE kollabieren auf denselben Schlüssel, sie clustern in der Ausgabe und ihre relative Reihenfolge ist die, in der sie zuerst in der Eingabe auftauchten (das sort ist stabil). Setze Case-sensitive, um sie zu trennen; dann werden APPLE, Apple und apple nach dem tertiären Level der Unicode-Default-Collation als drei verschiedene Werte sortiert.

Unterstützt es natural sort für Dateinamen wie file2 vor file10?

Ja. Schalte die Option Natural sort ein, dann werden eingebettete Zahlen als Zahlen verglichen, also kommt file2.log vor file10.log und v1.9 vor v1.10. Die Implementierung ist die Option numeric: true auf Intl.Collator, dieselbe Primitive, die macOS Finder und Windows Explorer zum Sortieren von Dateinamen verwenden.

Kann ich rückwärts sortieren (Z bis A)?

Ja. Wähle Absteigend im Reihenfolge-Schalter. Das sort läuft zuerst aufsteigend, dann wird umgekehrt, was die Stabilität bei gleichen Schlüsseln erhält: vergleichen sich zwei Zeilen unter deinen Einstellungen für Groß-/Kleinschreibung und natural sort als gleich, behalten sie auch nach der Umkehr ihre ursprüngliche relative Reihenfolge. Das zählt, wenn du nach einem Teilschlüssel wie der ersten Spalte einer TSV sortierst.

Was passiert mit doppelten Zeilen und leeren Zeilen?

Standardmäßig bleiben beide. Das sort ist stabil, also behalten Duplikate ihre ursprüngliche relative Reihenfolge, und leere Zeilen clustern beim Aufsteigend oben (sie sortieren vor jeder nicht leeren Zeichenkette). Setze Leere Zeilen entfernen, um sie vor dem Sortieren zu verwerfen, und Duplikate entfernen, um gleiche Zeilen zu einer zusammenzufassen. Für einen dedizierten Dedup-Lauf mit mehr Optionen nimm Doppelte Zeilen entfernen.

Gibt es eine Größenbegrenzung?

Bis ungefähr 100.000 Zeilen läuft es im Browser unter einer Sekunde. Über 500.000 Zeilen merkst du es, vor allem weil das Rendern des Ergebnis-Panes (nicht das sort selbst) teuer wird. Für Dateien mit Millionen Zeilen ist das unix-sort mit LC_ALL=C sort -u file.txt schneller und arbeitet out-of-core. Das GNU-coreutils-sort-Handbuch erklärt die Flags, die zu kennen sich lohnt.

Datenschutz und wie das Ganze funktioniert

Dein Text verlässt deinen Browser nie. Splitten, Vergleichen und Joinen laufen alle lokal. Keine Analytics auf deine Eingabe, keine Logs, kein Server-Roundtrip. Der Vergleich selbst ist der browser-eigene Intl.Collator, der den Unicode Collation Algorithm (UTS #10) implementiert. Wenn du Hintergrundlektüre willst, hat Wikipedia einen soliden Überblick über Sortierverfahren allgemein.