Sortér linjer: sortér tekst alfabetisk online
Indsæt en liste, vælg en rækkefølge, få den sorteret. Med eller uden hensyn til store og små bogstaver, stigende eller faldende, med natural sort til filnavne og versionsstrenge.
Hvad er værktøjet til at sortere linjer?
Et gratis værktøj, der kører i browseren, tager en blok tekst, deler den på linjeskift, sorterer linjerne og giver dig resultatet. Ingen tilmelding, ingen upload, intet forlader din maskine. Indsæt, klik, kopiér.
Det svarer til at køre sort på kommandolinjen, blot uden at skulle slås med LC_COLLATE, det faktum at macOS leverer et ældre BSD-sort, eller at Windows slet ikke har sort, medmindre du installerer Git Bash. Tre afkrydsningsfelter dækker de tilfælde, du faktisk ønsker: stigende eller faldende, med eller uden hensyn til store og små bogstaver, og natural sort, så file2 kommer før file10.
Hvis du nogensinde har indsat en liste afhængigheder i package.json og undret dig over, hvorfor npm omsorterede dem ved næste install, gengiver dette værktøj præcis det, npm 7+ gør, så diff:en er tom, når CI kører.
Hvordan sort:en faktisk virker
Under motorhjelmen bruger værktøjet browserens Intl.Collator-API. Det giver dig en sammenligningsfunktion, der forstår Unicode på den måde, Unicode Collation Algorithm (UTS #10) definerer det, og ikke en rå codepoint-sammenligning. Praktisk forskel: Intl.Collator ved, at é sorteres ved siden af e, at det tyske ß sammenlignes lig med ss på primært niveau, og at store og små bogstaver kun adskilles på tertiært niveau.
Lexicographic sort og locale-bevidst sort er ikke det samme. En ren codepoint-sort (det LC_ALL=C sort giver) sætter alle store bogstaver før alle små, fordi A er U+0041 og a er U+0061. En sort med Unicodes default-collation fletter dem: A < a < B < b < C. Vi bruger som standard locale-bevidst rækkefølge, fordi den matcher det, folk forventer, når de trykker Sortér A-Z i Excel eller Google Sheets. Sæt flueben i case-sensitive for at falde tilbage til codepoint-stilens rækkefølge.
Natural sort er den tredje akse. Slået til kommer file2.log før file10.log, fordi indlejrede tal sammenlignes som tal, ikke tegn for tegn. Wikipedia har en pæn forklaring af naturlig sorteringsorden, hvis du vil have baggrunden. Implementationen bruger numeric: true-muligheden på Intl.Collator, samme primitive operation, som Finder, Stifinder og nyere versioner af GNU sort -V bruger.
Sortér linjer i tre trin
Ét inputpanel, ét outputpanel. Det hele kører lokalt; luk fanebladet, og din tekst er væk.
- 1
Indsæt dine linjer
Slip listen ned i editoren, ét punkt per linje. Tomme linjer i slutningen er fint. Både CRLF og LF virker; outputtet normaliseres til LF, medmindre du siger andet. Sample-knappen fylder editoren med en lille blandet liste, hvis du først vil se alle tre muligheder i aktion.
- 2
Vælg sort-mulighederne
Vælg Stigende eller Faldende, slå Skelner mellem store og små bogstaver til, hvis du har brug for, at Apple kommer før banana, og slå Natural sort til, når filnavne eller versioner er i spil. Fjern tomme linjer kasserer tomme rækker før sorteringen; Fjern dubletter samler gentagelser.
- 3
Kopiér det sorterede resultat
Tryk på Sort. Resultatet lander i outputpanelet. Brug Kopiér for at lægge det i udklipsholderen, eller Download for at gemme det som en .txt-fil. Linjetælleren i headeren viser, hvor mange rækker der kom ud, hvilket er nyttigt, når du har slået dedup til og vil vide, hvor mange dubletter der blev fjernet.
Hvornår sortering af linjer er det rette værktøj
Sortér en e-mailliste før udsendelse af en kampagne
Markedsføring indsætter en CSV med abonnenters mails i kampagneværktøjet, men listen kom i tilmeldingsrækkefølge. Sortér den først alfabetisk her, med skiftlejeufølsom slået til (mailens lokale del er i praksis ufølsom over for store og små bogstaver), og dedupliker derefter. Importen i kampagneværktøjet bliver hurtigere, og et fejlskrevet domæne som gmial.com opdager du straks, fordi det ligger lige ved siden af det legitime gmail.com-blok.
Alfabetisér CSS-klassenavne eller HTML-attributrækkefølge
Nogle hold påtvinger alfabetiske klassenavne i class="..."-attributter for at holde PR-diffs rene. Indsæt værdien, sortér, indsæt tilbage. Samme trick virker for HTML-attributrækkefølge, når en linter brokker sig, eller for at sortere Tailwind utility-klasser i hånden, når prettier-plugin-tailwindcss ikke er installeret i repoet.
Sortér en .gitignore, så fremtidige PR'er differ pænt
En .gitignore, som alle tilføjer til, bliver til en rodekasse. Sortér den alfabetisk én gang, commit det, og fra da af lander tilføjelser på indlysende steder, og diff:en giver mening for anmeldere. Det samme gælder .dockerignore, .eslintignore og files-arrayen i tsconfig.json, hvis hold holder en sådan.
Ryd op i en TODO-liste indsat fra chatten
Slack og Discord indsætter lister med underlig rækkefølge, halvtomme linjer og dubletter fra folk, der sagde det samme to gange. Indsæt, slå Fjern tomme linjer og Fjern dubletter til, sortér. Du får en ren, ordnet liste at smide ind i din opgavetracker.
Sortér en liste med lande-, lufthavns- eller valutakoder
ISO 3166-landekoder, IATA-lufthavnskoder, ISO 4217-valutakoder: alle bor i lookup-filer, der har gavn af at være sorteret. Natural sort er unødvendig her, da koderne har fast bredde, men ufølsomhed over for store og små bogstaver er vigtig, fordi nogle kilder blander USD med usd. Sortér, dedupliker, indsæt tilbage i lookup-tabellen.
Sortér en liste med package.json-afhængigheder
Afhængighedsnøglerne i package.json alfabetiseres af npm 7+ ved hver install, men hvis du redigerer i et projekt, der stadig er fastlåst på npm 6 (eller yarn 1), ændrer rækkefølgen sig ikke automatisk. Indsæt afhængighedsnøglerne, sortér A-Z, indsæt tilbage. Dit næste PR har ikke en omsorteringscommit på 200 linjer oven på den egentlige ændring.
Sortér linjer: hurtig reference
Et kort snydeark over de sort-muligheder, dette værktøj eksponerer, og de kanttilfælde, de dækker.
| Topic | What this tool does |
|---|
| Lexicographic vs collation | Lexicographic-(codepoint-)sort ordner efter rå Unicode-værdi: A (U+0041) før a (U+0061). Collation-sort følger Unicode Collation Algorithm og fletter bogstavskasus ind i hinanden. Værktøjet bruger collation som standard; sæt flueben i Skelner mellem store og små bogstaver for codepoint-rækkefølge. |
|---|
| Skelnen mellem store og små bogstaver | Standard er ufølsom: apple, Apple og APPLE sammenlignes lige. Skift til følsom for rækkefølgen A < a < B < b på tertiært collation-niveau, eller for rå codepoint-rækkefølge, når det kombineres med C-locale. |
|---|
| Natural sort | Slået til, file2 < file10, fordi 2 og 10 sammenlignes som tal. Slået fra, file10 < file2, fordi 1 (U+0031) er mindre end 2 (U+0032) tegn for tegn. Brug det til filnavne, versionsstrenge og enhver liste med indlejrede tal. |
|---|
| Locale-bevidsthed | Sort:en respekterer sidens locale, så é ordnes ved siden af e på fransk, det tyske ä sorteres som ae i DIN 5007-2-telefonbogsrækkefølge, og så videre. Unix-sort gør det samme, hvis LC_COLLATE er sat; LC_ALL=C sort falder tilbage til codepoint-rækkefølge, hurtigere men behandler accenter som fremmede bogstaver. |
|---|
| Håndtering af tomme linjer | Tomme linjer sorteres før enhver ikke-tom linje i stigende rækkefølge, så de klumper sig i toppen. Sæt flueben i Fjern tomme linjer for at kassere dem helt. En afsluttende newline i slutningen af inputtet beholdes, som den er, så outputtet round-tripper gennem cat og lignende værktøjer uden overraskelser. |
|---|
| Stabilitet | Sort:en er stabil: linjer, der sammenlignes lige under dine indstillinger, beholder deres oprindelige indbyrdes rækkefølge. Det betyder noget, når du sorterer på et præfiks eller i skiftlejeufølsom tilstand og vil bevare inputtens rækkefølge inden for en lighedsgruppe. Både V8 (Chrome, Edge, Node) og SpiderMonkey (Firefox) garanterer stabil Array.prototype.sort siden 2019. |
|---|
| Linjeskift (LF vs CRLF) | Input deles på \r\n, \n og \r. Output samles med \n som standard, så det indsættes pænt i Linux- og macOS-flows. Har du brug for CRLF til et Windows-værktøj, indsæt resultatet i en Windows-bevidst editor og gem med det linjeskift, du vil have. |
|---|
| Tegnkodning | Input behandles som UTF-8 (tekst i browseren er allerede afkodet). En indledende UTF-8-BOM bevares på første linje, hvis den er der; vil du strippe den, fjerner søsterværktøjet whitespace-cleaner den. |
|---|
Sortér linjer: ofte stillede spørgsmål
Hvad er standardrækkefølgen for sort?
Stigende og locale-bevidst, med browserens Intl.Collator i sidens locale. Det betyder A < a < B < b, sådan som Excel og Google Sheets sorterer, ikke den rå codepoint-rækkefølge, hvor hvert stort bogstav kommer før hvert lille. Vil du have codepoint-rækkefølge, sæt flueben i Skelner mellem store og små bogstaver: det stiller collator:en til en streng tertiær sammenligning og giver samme rækkefølge som LC_ALL=C sort.
Skelner sort:en mellem store og små bogstaver?
Som standard ikke. Apple, apple og APPLE kollapser alle til samme nøgle, så de klumper sig sammen i outputtet, og deres indbyrdes rækkefølge er den, der dukkede op først i inputtet (sort:en er stabil). Sæt flueben i Skelner mellem store og små bogstaver for at adskille dem; så sorteres APPLE, Apple og apple som tre forskellige værdier i henhold til tertiært niveau i Unicodes default-collation.
Understøtter den natural sort for filnavne som file2 før file10?
Ja. Slå Natural sort-muligheden til, så sammenlignes indlejrede tal som tal, så file2.log kommer før file10.log, og v1.9 kommer før v1.10. Implementationen er numeric: true-muligheden på Intl.Collator, samme primitive operation, som macOS Finder og Stifinder bruger til at ordne filnavne.
Kan jeg sortere baglæns (Z til A)?
Ja. Vælg Faldende i rækkefølge-toggle. Sort:en kører først stigende og vendes derefter, hvilket bevarer stabiliteten på tværs af lige nøgler: hvis to linjer sammenlignes lige under dine indstillinger for skiftleje og natural sort, beholder de deres oprindelige indbyrdes rækkefølge selv efter vendingen. Det betyder noget, når du sorterer på en delnøgle som første kolonne i en TSV.
Hvad sker der med dublerede linjer og tomme linjer?
Som standard beholdes begge. Sort:en er stabil, så dubletter beholder deres oprindelige indbyrdes rækkefølge, og tomme linjer klumper sig i toppen i stigende rækkefølge (de sorteres før enhver ikke-tom streng). Sæt flueben i Fjern tomme linjer for at kassere dem før sorteringen, og Fjern dubletter for at smelte lige linjer sammen til én. For en dedikeret dedup-omgang med flere muligheder, brug Fjern dublerede linjer.
Er der en størrelsesgrænse?
Op til omkring 100.000 linjer kører på under et sekund i browseren. Forbi 500.000 linjer begynder du at mærke det, primært fordi det at rendere resultatpanelet (ikke selve sort:en) bliver dyrt. For filer på flere millioner linjer er unix-kommandoen sort med LC_ALL=C sort -u file.txt hurtigere og kører out-of-core. GNU coreutils sort-manualen dækker de flag, det er værd at kende.
Privatliv og sådan virker det
Din tekst forlader aldrig din browser. Opdelingen, sammenligningen og sammensætningen kører alt sammen lokalt. Ingen analyse på dit input, ingen logs, ingen serverrunde. Selve sammenligningen er browserens egen Intl.Collator, der implementerer Unicode Collation Algorithm (UTS #10). Vil du have baggrundslæsning, har Wikipedia et solidt overblik over sorteringsalgoritmer generelt.