Skip to main content

Text-Sortierer

Zeilen alphabetisch, numerisch, nach Länge oder zufällig sortieren.

Geprüft von · Zuletzt geprüft

So wird der Text-Sortierer verwendet

  1. Füge deine Liste ein in den Eingabebereich, ein Element pro Zeile. Jede Zeile wird als atomares Element behandelt, unabhängig davon, ob es ein Name, eine Zahl, eine URL, ein Dateipfad oder eine freie Zeichenkette ist.
  2. Wähle einen Sortiermodus: A bis Z für standard-alphabetisch, Z bis A für umgekehrt alphabetisch, Kurz bis Lang oder Lang bis Kurz für längenbasiertes Sortieren, Numerisch für numerisch-präfix-Sortieren oder Zufällig Mischen für Fisher-Yates-Randomisierung.
  3. Optionen umschalten nach Bedarf: Case-sensitiv hält Groß- und Kleinbuchstaben getrennt, Duplikate entfernen führt einen Deduplizierungsdurchlauf vor dem Sortieren durch.
  4. Lese das Ausgabe-Panel darunter, das live aktualisiert wird. Die Elementanzahl wird angezeigt, damit du bestätigen kannst, dass die Deduplizierung die erwartete Anzahl von Zeilen entfernt hat.
  5. Klicke Kopieren, um das sortierte Ergebnis zu greifen, oder weiter iterieren, indem die Modi gewechselt werden. Die ursprüngliche Eingabe in der oberen Box wird nie verändert.

Wie das Sortieren funktioniert

Alphabetische Modi verwenden Array.prototype.sort mit einem Vergleicher, der auf Intl.Collator basiert und sprachbewusste Kollation anwendet: Deutsches ß sortiert nahe ss, Tschechisches ch sortiert als einzelner Buchstabe in traditioneller Reihenfolge, Schwedisches ä sortiert nach z. Wenn Case-sensitiv ausgeschaltet ist, läuft der Collator mit sensitivity: "base", sodass Akzent- und Groß-/Kleinschreibungs-Unterschiede zusammenfallen. Längen-Sortierungen verwenden einen einfachen numerischen Vergleich auf a.length - b.length mit einem sekundären alphabetischen Tie-Breaker, sodass gleich lange Zeilen in stabiler Reihenfolge landen. Der numerische Modus parst jede Zeile mit parseFloat und fällt bei nicht-numerischen Präfixen auf 0 zurück. Zufälliges Mischen verwendet den Fisher-Yates-Algorithmus, der von crypto.getRandomValues angetrieben wird, für kryptographisch qualitative Zufälligkeit, was die Verzerrung verhindert, die Math.random()-basiertes Mischen einführen kann.

Wann du es verwenden würdest

  • Eine Kontaktliste, Gästeliste oder Autorenliste alphabetisieren, bevor sie in eine CSV exportiert wird.
  • Eine Liste von Ländercodes oder ISO-Währungscodes in die Reihenfolge sortieren, die deine API oder UI erwartet.
  • Git-Branch-Namen ordnen, damit die Präfixe zusammen gruppiert sind und leichter zu scannen sind.
  • Eine Verlosungs- oder Testgruppen-Zuteilungsliste mischen, bei der Fairness unvoreingenommene Zufälligkeit erfordert.
  • Log-Zeitstempel oder Unix-Epochen numerisch sortieren, um eine grobe Zeitleiste aus einem gemischten Satz zu erstellen.
  • Importe in einer Quelldatei nach Länge anordnen, sodass die kürzesten zuerst erscheinen - eine Ästhetik, die manchmal von handoptimierten Codebasen übernommen wird.

Häufige Fallstricke und Randfälle

  • Numerische Zeichenketten ohne numerischen Modus. 10 sortiert im alphabetischen Modus vor 2, weil '1' als Zeichen vor '2' steht. In den numerischen Modus wechseln oder eine natürlich sortierende Locale verwenden.
  • Gemischte Zahl- und Textzeilen im numerischen Modus. Zeilen, die nicht mit einer Zahl beginnen, werden als NaN geparst und an den Anfang sortiert (als 0 für den Vergleich behandelt). Filtern, wenn das nicht gewollt ist.
  • Locale-Annahmen. Der Standard-Intl.Collator verwendet die Browser-Locale, die akzentbehaftete Zeichen anders platzieren kann als eine serverseitige Implementierung. Für systemübergreifende Konsistenz eine spezifische Locale in der URL oder dem Query-String setzen.
  • Zeilenenden innerhalb von Elementen. Das Sortieren teilt auf \n, sodass mehrzeilige Elemente (wie eine CSV-Zeile mit einem eingebetteten Zeilenumbruch innerhalb eines Feldes in Anführungszeichen) auseinandergerissen werden. Die Zeilenumbrüche zuerst escapen oder ein CSV-bewusstes Tool verwenden.
  • Unsichtbare Zeichen. Zwei Zeilen, die identisch aussehen, aber sich durch ein nullbreites Leerzeichen unterscheiden, sortieren als verschieden. Der Unsichtbares-Zeichen-Detektor auf dieser Seite hilft.
  • Stabilität. Array.prototype.sort ist in modernem V8, SpiderMonkey und JavaScriptCore stabil (erforderlich durch ECMAScript seit 2019), sodass gleiche Schlüssel die Eingabereihenfolge erhalten - nützlich beim Sortieren nach Länge und beim Wünschen der ursprünglichen Reihenfolge innerhalb jedes Längeneimers.

Kollationshintergrund

Menschenlesbare Texte korrekt zu sortieren ist überraschend subtil. Ein naiver Byte-Vergleich sortiert Großbuchstaben vor Kleinbuchstaben, akzentbehaftete Zeichen nach z und Ziffern vor Buchstaben - für eine Maschine gut, für Menschen schlecht. Unicode Collation Algorithm (UCA), definiert in Unicode Technical Standard #10, ist die moderne Lösung: Er weist jedem Zeichen mehrstufige Gewichte zu, sodass der Vergleich auf primärer Ebene Groß-/Kleinschreibung und Akzente ignoriert, die sekundäre Ebene Akzente berücksichtigt, die tertiäre Groß-/Kleinschreibung und die Quaternär-Ebene Interpunktion. Die JavaScript-Intl.Collator-API stellt UCA mit eingebauten Locale-Overrides bereit, weshalb a.localeCompare(b, "de-DE") sprachlich korrektes deutsches Sortieren liefert. ICU (die International Components for Unicode-Bibliothek) liefert die zugrundeliegenden Daten; Pythons pyuca, Javas Collator und Cs strcoll implementieren alle denselben Algorithmus.

Vergleich mit Alternativen

Auf der Kommandozeile ist sort das Arbeitspferd - blitzschnell, streamingfähig und mit Flags für numerisches (-n), umgekehrtes (-r), eindeutiges (-u), zufälliges (-R) und feldbasiertes (-k) Sortieren. LC_ALL=C setzen lässt es Byte-Reihenfolge verwenden, während das Setzen einer Locale UCA-ähnliche Kollation aktiviert. Excel und Google Sheets bieten Mehrspalten-Sortieren mit benutzerdefinierten Schlüsseln, was für strukturierte Daten das Richtige ist. SQL ORDER BY col COLLATE "en-US" verschiebt das Sortieren in die Datenbank und verwendet ICU. Pythons sorted() mit dem key=-Argument bietet volle Flexibilität. Dieses Web-Sortiertool verwenden, wenn deine Daten eine flache Zeilen-pro-Element-Liste sind, du Modi visuell umschalten möchtest, ohne ein Skript zu schreiben, oder du unvoreingenommene Zufälligkeit benötigst, die durch die Web-Crypto-API statt Math.random gesichert wird.

Häufig gestellte Fragen

Warum wird "10" im alphabetischen Modus vor "2" sortiert?

Alphabetisches Sortieren vergleicht Zeichen für Zeichen. Das erste Zeichen von "10" ist "1", das erste Zeichen von "2" ist "2", und "1" hat einen kleineren Unicode-Code-Punkt als "2", sodass "10" gewinnt. Um das zu beheben, in den numerischen Modus wechseln, der die führende Zahl parst und numerisch vergleicht. Einige Implementierungen bieten "natürliches Sortieren" an, das gemischte Alphanumerik wie file1, file2, file10, file20 korrekt behandelt; das ist das, was macOS Finder verwendet, und es ist über <code>Intl.Collator</code> mit <code>numeric: true</code> in modernen Browsern verfügbar.

Wie sicher ist das zufällige Mischen?

Das Mischen verwendet den Fisher-Yates-Algorithmus, der von <code>crypto.getRandomValues</code> gespeist wird, das Bytes aus dem OS-Level-CSPRNG (kryptographisch sicherer Pseudo-Zufallszahlengenerator) über die Web-Crypto-API zieht. Das ist dieselbe Entropiequelle, die für das Generieren von UUIDs, Verschlüsselungsschlüsseln und Session-Tokens im Browser verwendet wird. Es ist deutlich besser als <code>Math.random</code>, das ein deterministischer PRNG ist, der für fairness-kritische Aufgaben wie Zufallsziehungen oder Testgruppen- Zuweisung nicht geeignet ist.

Wird meine Liste hochgeladen?

Nein. Das Sortieren läuft als synchrone JavaScript-Funktion in deinem Browser-Tab. Es gibt kein fetch, keine Service-Worker-Abfangung und keine Telemetrie, die die Liste erfasst. Der <code>Intl.Collator</code>-Vergleicher und <code>Array.prototype.sort</code> sind beide native Browser-APIs, die das Netzwerk nie berühren. Wenn deine Liste vertrauliche Namen oder E-Mail-Adressen enthält, erfolgt das Sortieren vollständig auf deinem Gerät.

Wie sortiere ich nach der zweiten Spalte einer CSV?

Dieses Tool behandelt jede Zeile als atomaren Schlüssel, sodass Mehrspalten-Sortieren nicht direkt unterstützt wird. Du hast drei Optionen: (1) Spalten zuerst in deiner CSV neu ordnen, sodass der Schlüssel in Spalte 1 steht, (2) ein Tabellenkalkulationstool wie Excel oder Google Sheets verwenden, das eingebautes Mehrspalten-Sortieren hat, oder (3) ein CSV-bewusstes CLI wie csvkits csvsort -c Spaltenname verwenden. Für einfache Schlüsselextraktion in bash sortiert <code>awk -F, '{print $2 "|" $0}' | sort | cut -d'|' -f2-</code> nach Spalte 2, während die vollständige Zeile erhalten bleibt.

Warum ordnet das Case-insensitive Sortieren Kleinbuchstaben und Großbuchstaben desselben Buchstabens in unvorhersehbarer Reihenfolge?

Weil der Vergleicher 0 für gleiche Schlüssel zurückgibt (a und A sind gleich unter <code>sensitivity: "base"</code>), werden die Überlebenden nach ihrer ursprünglichen Position geordnet - das heißt, Sortierstabilität greift. Wenn du möchtest, dass Großbuchstaben immer zuerst kommen, in den Case-sensitiven Modus wechseln und Unicode-Code-Punkt-Reihenfolge akzeptieren. Wenn du ein bestimmtes Tie-Breaker-Verhalten möchtest, eine zweite Sortierung darüber ketten oder die Ausgabe durch das Tool mit einer strengeren Option zurückführen.

Wie schnell ist das Sortieren bei großen Listen?

Natives <code>Array.prototype.sort</code> ist O(n log n) mit einem kleinen konstanten Faktor; auf einem modernen Laptop-Browser verarbeitet es eine Million kurze Zeilen in etwa einer Sekunde. Darüber hinaus trifft man Speicher- statt CPU-Grenzen, weil die Engine jede Zeile in ein JavaScript- Zeichenkettenobjekt lädt. Für Mehrere-Gigabyte-Dateien GNU sort verwenden, das speziell für externes Speicher-Sortieren optimiert ist und Terabyte- Eingaben mit genügend Festplattenspeicher verarbeiten kann.

Passiert das Entfernen von Duplikaten vor oder nach dem Sortieren?

Davor. Das Tool erstellt zuerst ein Set, das nach der normalisierten Zeile (gemäß deinen case-sensitiven und Leerzeichen-Einstellungen) geordnet ist, behält das erste Vorkommen jeder bei, dann führt es das Sortieren der Überlebenden durch. Diese Reihenfolge ist wichtig: Wenn das Sortieren zuerst und das Deduplizieren danach geschähe, würde die "Erstes-Vorkommen"-Garantie auf die sortierte Reihenfolge statt auf die Eingabereihenfolge verweisen, was normalerweise nicht das ist, was man möchte.

Was passiert mit leeren Zeilen?

Leere Zeilen werden als gültige Elemente mit einem leeren Zeichenkettenwert behandelt. Im alphabetischen Modus sortieren sie an den Anfang, weil die leere Zeichenkette kleiner als jede nicht-leere Zeichenkette vergleicht. Im Längen-Modus landen sie am Anfang von Kurz-zu-Lang oder am Ende von Lang-zu-Kurz. Im numerischen Modus werden sie als NaN geparst und fallen in den 0-Eimer. Wenn du sie überhaupt nicht in der Ausgabe haben möchtest, zuerst die Option Leerzeilen entfernen im Leerzeichen-Entferner verwenden.

Ist das Sortieren deterministisch?

Ja, außer beim zufälligen Mischen. Alphabetische und numerische Modi erzeugen bei jeder Ausführung für dieselbe Eingabe in jedem Browser mit der aktuellen Sprache dieselbe Ausgabe. Zufälliges Mischen ist explizit nicht deterministisch; jeder Klick erzeugt eine neue Reihenfolge, die durch frische Krypto-Bytes gespeist wird. Wenn du ein deterministisches Mischen für eine reproduzierbare Demo benötigst, einmal ausführen und die Ausgabe speichern.

Kann ich Daten sortieren?

Nur wenn ihr Format die alphabetische Reihenfolge gleich der chronologischen Reihenfolge macht. ISO 8601 (2026-04-22T10:30:00Z) ist dafür ausgelegt und sortiert im alphabetischen Modus korrekt. Formate wie 4/22/2026 nicht; sie umwandeln oder die Unix-Epoch numerisch sortieren.

Verwandte Tools

Mehr Text Tools

ZeroUtil unterstützen