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

Regels sorteren: tekst alfabetisch online sorteren

Plak een lijst, kies een volgorde, krijg hem gesorteerd. Met of zonder hoofdlettergevoeligheid, oplopend of aflopend, met natural sort voor bestandsnamen en versie-strings.

Wat is de tool om regels te sorteren?

Een gratis tool die in de browser draait, een tekstblok pakt, het op regeleinden splitst, de regels sorteert en je het resultaat teruggeeft. Geen registratie, geen upload, niets verlaat je machine. Plakken, klikken, kopiëren.

Het komt neer op sort draaien op de commandoregel, alleen hoef je hier niet te vechten met LC_COLLATE, met het feit dat macOS een oudere BSD-sort meelevert, of met het feit dat Windows zonder Git Bash helemaal geen sort heeft. Drie checkboxen dekken de gevallen die je echt wilt: oplopend of aflopend, hoofdlettergevoelig of niet, en natural sort zodat file2 vóór file10 komt.

Heb je ooit een lijst dependencies in package.json geplakt en je afgevraagd waarom npm ze bij de volgende install opnieuw heeft gesorteerd? Deze tool reproduceert wat npm 7+ doet, zodat het diff leeg is wanneer CI draait.

Hoe het sort eigenlijk werkt

Onder de motorkap gebruikt de tool de Intl.Collator-API van de browser. Dat geeft je een vergelijkfunctie die Unicode begrijpt zoals het Unicode Collation Algorithm (UTS #10) het definieert, en geen rauwe codepoint-vergelijking. Het praktische verschil: Intl.Collator weet dat é naast e sorteert, dat de Duitse ß op het primaire niveau gelijk is aan ss, en dat hoofd- en kleine letters alleen op het tertiaire niveau verschillen.

Lexicographic sort en locale-bewuste sort zijn niet hetzelfde. Een puur codepoint-sort (wat LC_ALL=C sort oplevert) zet elke hoofdletter vóór elke kleine letter, omdat A U+0041 is en a U+0061. Een Unicode-default-collation-sort schuift ze ineen: A < a < B < b < C. We kiezen standaard voor de locale-bewuste volgorde, omdat dat is wat mensen verwachten als ze in Excel of Google Sheets op Sort A-Z klikken. Vink het case-sensitive vakje aan om terug te vallen op de codepoint-achtige volgorde.

Natural sort is de derde as. Aan: file2.log komt vóór file10.log, omdat ingebedde getallen als getallen worden vergeleken, niet teken voor teken. Wikipedia heeft een nette uitleg van natuurlijke sortering als je de achtergrond wilt. De implementatie gebruikt de optie numeric: true van Intl.Collator, dezelfde primitief die Finder, Windows Verkenner en recente versies van GNU sort -V gebruiken.

In drie stappen regels sorteren

Eén invoerpaneel, één uitvoerpaneel. Alles draait lokaal; sluit het tabblad en je tekst is weg.

  1. 1

    Plak je regels

    Drop je lijst in de editor, één item per regel. Lege regels aan het eind zijn geen probleem. CRLF en LF werken allebei; de uitvoer wordt genormaliseerd naar LF tenzij je iets anders aangeeft. De Sample-knop vult de editor met een kleine gemengde lijst als je eerst alle drie de opties in actie wilt zien.

  2. 2

    Kies de sort-opties

    Kies Oplopend of Aflopend, schakel Hoofdlettergevoelig in als je nodig hebt dat Apple vóór banana komt, en zet Natural sort aan als bestandsnamen of versies in het spel zijn. Lege regels verwijderen gooit lege rijen weg vóór het sorteren; Duplicaten verwijderen klapt herhalingen samen.

  3. 3

    Kopieer het gesorteerde resultaat

    Druk op Sort. Het resultaat verschijnt in het uitvoerpaneel. Gebruik Kopiëren om het op het klembord te zetten, of Downloaden om het als .txt-bestand op te slaan. De regelteller in de header laat zien hoeveel regels eruit kwamen, handig als je dedupe hebt aangezet en wilt weten hoeveel duplicaten zijn verwijderd.

Wanneer regels sorteren het juiste gereedschap is

Een e-maillijst sorteren vóór een campagne-verzending

Marketing plakt een CSV met abonnee-adressen in de campagnetool, maar de lijst kwam in aanmeldvolgorde binnen. Sorteer hem hier eerst alfabetisch, met case-insensitive aan (de lokale parts van e-mailadressen zijn in de praktijk hoofdletterongevoelig), dedupliceer dan. De import in de campagnetool gaat sneller en een verkeerd getikt domein zoals gmial.com spot je meteen, omdat het naast het legitieme gmail.com-blok staat.

CSS-klassennamen of HTML-attribuutvolgorde alfabetiseren

Sommige teams forceren alfabetische klassennamen in class="..."-attributen om PR-diffs schoon te houden. Plak de waarde, sorteer, plak terug. Hetzelfde trucje werkt voor HTML-attribuutvolgorde als een linter klaagt, of om Tailwind utility-klassen handmatig te sorteren als prettier-plugin-tailwindcss niet in de repo staat.

Een .gitignore sorteren zodat toekomstige PR-diffs schoon zijn

Een .gitignore waar iedereen aan toevoegt wordt een rommella. Sorteer hem één keer alfabetisch, commit dat, en daarna landen toevoegingen op voor de hand liggende plekken en is de diff begrijpelijk voor reviewers. Hetzelfde geldt voor .dockerignore, .eslintignore en de files-array in tsconfig.json als teams die bijhouden.

Een uit de chat geplakte TODO-lijst opruimen

Slack en Discord plakken lijsten met rare volgorde, halflege regels en duplicaten van mensen die hetzelfde tweemaal hebben gezegd. Plakken, Lege regels verwijderen en Duplicaten verwijderen aanzetten, sorteren. Je krijgt een schone, geordende lijst om in je task tracker te zetten.

Een lijst met land-, luchthaven- of valutacodes sorteren

ISO 3166-landcodes, IATA-luchthavencodes, ISO 4217-valutacodes: ze leven allemaal in lookup-bestanden die baat hebben bij sortering. Natural sort is hier overbodig omdat de codes vaste breedte hebben, maar case-insensitive is wel belangrijk omdat sommige bronnen USD met usd mengen. Sorteren, dedupliceren, terugplakken in de lookup-tabel.

Een lijst met package.json-dependencies sorteren

De dependency-keys in package.json worden door npm 7+ bij elke install gealfabetiseerd, maar als je werkt aan een project dat nog vastzit op npm 6 (of yarn 1) verandert de volgorde niet vanzelf. Plak de dependency-keys, sorteer A-Z, plak terug. Je volgende PR krijgt geen herorden-commit van 200 regels bovenop de eigenlijke wijziging.

Regels sorteren: snelle referentie

Een korte spiekbrief over de sort-opties die deze tool blootlegt en de randgevallen die ze afdekken.

TopicWhat this tool does
Lexicographic vs collationLexicographic-(codepoint-)sort sorteert op rauwe Unicode-waarde: A (U+0041) vóór a (U+0061). Collation-sort volgt het Unicode Collation Algorithm en schuift de cases ineen. Deze tool gebruikt standaard collation; vink Hoofdlettergevoelig aan voor codepoint-volgorde.
HoofdlettergevoeligheidStandaard ongevoelig: apple, Apple en APPLE vergelijken gelijk. Schakel naar gevoelig voor de volgorde A < a < B < b op het tertiaire collation-niveau, of voor rauwe codepoint-volgorde gecombineerd met de C-locale.
Natural sortAan: file2 < file10 omdat 2 en 10 als getallen worden vergeleken. Uit: file10 < file2 omdat 1 (U+0031) teken voor teken kleiner is dan 2 (U+0032). Gebruik het voor bestandsnamen, versie-strings en elke lijst met ingebedde getallen.
Locale-bewustzijnHet sort respecteert de pagina-locale: é staat in het Frans naast e, de Duitse ä sorteert als ae in DIN 5007-2 telefoonboekvolgorde, enzovoort. Het unix-sort-commando doet hetzelfde als LC_COLLATE is gezet; LC_ALL=C sort valt terug op codepoint-volgorde, sneller maar behandelt accenten als vreemde letters.
Behandeling van lege regelsLege regels sorteren oplopend vóór elke niet-lege regel, dus ze clusteren bovenaan. Vink Lege regels verwijderen aan om ze helemaal te droppen. Een afsluitende newline aan het eind van de invoer blijft staan zoals hij is, zodat de uitvoer door cat en soortgelijke tools heen blijft round-trippen.
StabiliteitHet sort is stabiel: regels die onder jouw instellingen gelijk vergelijken behouden hun oorspronkelijke onderlinge volgorde. Dat telt als je op een prefix sorteert of in case-insensitive modus en de invoervolgorde binnen een gelijke groep wilt behouden. Zowel V8 (Chrome, Edge, Node) als SpiderMonkey (Firefox) garanderen sinds 2019 een stabiele Array.prototype.sort.
Regeleinden (LF vs CRLF)Invoer wordt gesplitst op \r\n, \n en \r. Uitvoer wordt standaard met \n samengevoegd zodat het schoon plakt in Linux- en macOS-workflows. Heb je CRLF nodig voor een Windows-tool, plak het resultaat dan in een Windows-bewuste editor en sla op met het regeleinde dat je wilt.
CoderingInvoer wordt als UTF-8 behandeld (tekst in de browser is al gedecodeerd). Een leidende UTF-8 BOM wordt op de eerste regel bewaard als hij aanwezig is; wil je hem strippen, dan haalt de zustertool whitespace-cleaner hem weg.

Regels sorteren: veelgestelde vragen

Wat is de standaard sort-volgorde?

Oplopend en locale-bewust, met de Intl.Collator van de browser in de pagina-locale. Dat betekent A < a < B < b zoals Excel en Google Sheets sorteren, niet de rauwe codepoint-volgorde waarbij elke hoofdletter vóór elke kleine letter komt. Wil je codepoint-volgorde, vink dan Hoofdlettergevoelig aan: dat zet de collator om naar een strikte tertiaire vergelijking en levert dezelfde volgorde op als LC_ALL=C sort.

Is het sort hoofdlettergevoelig of niet?

Standaard hoofdletterongevoelig. Apple, apple en APPLE klappen samen op dezelfde sleutel, dus ze clusteren in de uitvoer en hun onderlinge volgorde is die van wie het eerst in de invoer verscheen (de sort is stabiel). Vink Hoofdlettergevoelig aan om ze te scheiden; dan worden APPLE, Apple en apple als drie verschillende waarden gesorteerd volgens het tertiaire niveau van de Unicode-default-collation.

Ondersteunt het natural sort voor namen zoals file2 vóór file10?

Ja. Zet de optie Natural sort aan en ingebedde getallen worden als getallen vergeleken, dus file2.log komt vóór file10.log, en v1.9 vóór v1.10. De implementatie is de optie numeric: true op Intl.Collator, dezelfde primitief die macOS Finder en Windows Verkenner gebruiken om bestandsnamen te ordenen.

Kan ik in omgekeerde volgorde sorteren (Z naar A)?

Ja. Kies Aflopend in de volgorde-toggle. Het sort draait eerst oplopend en wordt dan omgekeerd, wat de stabiliteit tussen gelijke sleutels behoudt: als twee regels onder jouw instellingen voor case en natural sort gelijk vergelijken, behouden ze hun oorspronkelijke onderlinge volgorde ook na de omkering. Dat telt als je op een deelsleutel sorteert, zoals de eerste kolom van een TSV.

Wat gebeurt er met dubbele regels en lege regels?

Standaard worden ze allebei behouden. Het sort is stabiel, dus duplicaten houden hun oorspronkelijke onderlinge volgorde, en lege regels clusteren oplopend bovenaan (ze sorteren vóór elke niet-lege string). Vink Lege regels verwijderen aan om ze vóór het sorteren te droppen, en Duplicaten verwijderen om gelijke regels samen te klappen tot één. Voor een dedicated dedupe-pass met meer opties gebruik je Dubbele regels verwijderen.

Is er een maximumgrootte?

Tot ongeveer 100.000 regels draait het in de browser onder een seconde. Boven 500.000 regels merk je het, vooral omdat het renderen van het resultaatpaneel (niet het sort zelf) duur wordt. Voor bestanden van meerdere miljoenen regels is het unix-sort-commando met LC_ALL=C sort -u file.txt sneller en werkt het out-of-core. De GNU coreutils sort-handleiding dekt de vlaggen die de moeite waard zijn.

Privacy en hoe dit werkt

Je tekst verlaat je browser nooit. Het splitsen, vergelijken en samenvoegen draait allemaal lokaal. Geen analytics op je invoer, geen logs, geen server-roundtrip. De vergelijking zelf is de browser-eigen Intl.Collator, die het Unicode Collation Algorithm (UTS #10) implementeert. Wil je achtergrondlectuur, Wikipedia heeft een degelijk overzicht van sorteeralgoritmes in het algemeen.