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

Sortere linjer: sorter tekst alfabetisk online

Lim inn en liste, velg en rekkefølge, få den sortert. Med eller uten skille mellom store og små bokstaver, stigende eller synkende, med natural sort for filnavn og versjonsstrenger.

Hva er verktøyet for å sortere linjer?

Et gratis verktøy som kjører i nettleseren, tar en blokk med tekst, deler den på linjeskift, sorterer linjene og gir deg resultatet. Ingen registrering, ingen opplasting, ingenting forlater maskinen din. Lim inn, klikk, kopier.

Det tilsvarer å kjøre sort på kommandolinjen, bare uten å måtte slåss med LC_COLLATE, det at macOS leverer et eldre BSD-sort, eller at Windows ikke har sort i det hele tatt med mindre du installerer Git Bash. Tre avkrysningsbokser dekker tilfellene du faktisk vil ha: stigende eller synkende, med eller uten skille mellom store og små bokstaver, og natural sort, slik at file2 kommer før file10.

Hvis du noen gang har limt inn en liste avhengigheter i package.json og lurt på hvorfor npm omsorterte dem ved neste install, gjenskaper dette verktøyet akkurat det npm 7+ gjør, slik at diff:en er tom når CI kjører.

Hvordan sort:en faktisk fungerer

Under panseret bruker verktøyet nettleserens Intl.Collator-API. Det gir deg en sammenligningsfunksjon som forstår Unicode på den måten Unicode Collation Algorithm (UTS #10) definerer det, og ikke en rå codepoint-sammenligning. Praktisk forskjell: Intl.Collator vet at é sorteres ved siden av e, at det tyske ß sammenlignes likt med ss på primært nivå, og at store og små bokstaver bare skiller seg på tertiært nivå.

Lexicographic sort og locale-bevisst sort er ikke det samme. En ren codepoint-sort (det LC_ALL=C sort gir) setter alle store bokstaver foran 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 bruker som standard locale-bevisst rekkefølge, fordi den matcher det folk forventer når de trykker Sortér A-Z i Excel eller Google Sheets. Sett kryss i case-sensitive for å falle tilbake til codepoint-stilens rekkefølge.

Natural sort er den tredje aksen. Slått på kommer file2.log før file10.log, fordi innebygde tall sammenlignes som tall, ikke tegn for tegn. Wikipedia har en pen forklaring av naturlig sortering hvis du vil ha bakgrunnen. Implementasjonen bruker numeric: true-alternativet på Intl.Collator, samme primitiv som Finder, Filutforsker og nyere versjoner av GNU sort -V bruker.

Sortere linjer i tre trinn

Ett innput-panel, ett utput-panel. Alt kjører lokalt; lukk fanen, og teksten din er borte.

  1. 1

    Lim inn linjene dine

    Slipp listen inn i editoren, ett element per linje. Tomme linjer på slutten er greit. Både CRLF og LF fungerer; utdata normaliseres til LF med mindre du sier noe annet. Sample-knappen fyller editoren med en liten blandet liste hvis du vil se alle tre alternativene i aksjon først.

  2. 2

    Velg sort-alternativene

    Velg Stigende eller Synkende, slå på Skiller mellom store og små bokstaver hvis du trenger at Apple kommer før banana, og slå på Natural sort når filnavn eller versjoner er involvert. Fjern tomme linjer kaster tomme rader før sorteringen; Fjern duplikater slår sammen gjentakelser.

  3. 3

    Kopier det sorterte resultatet

    Trykk på Sort. Resultatet havner i utput-panelet. Bruk Kopier for å legge det på utklippstavlen, eller Last ned for å lagre det som en .txt-fil. Linjetelleren i headeren viser hvor mange rader som kom ut, noe som er nyttig når du har slått på dedup og vil vite hvor mange duplikater som ble fjernet.

Når sortering av linjer er det rette verktøyet

Sortere en e-postliste før en kampanjeutsendelse

Markedsføring limer inn en CSV med abonnentenes e-poster i kampanjeverktøyet, men listen kom i påmeldingsrekkefølge. Sorter den først alfabetisk her, med skiftlejeufølsom på (e-postens lokale del er i praksis ufølsom for store og små bokstaver), og dedupliser deretter. Importen i kampanjeverktøyet blir raskere, og et feilskrevet domene som gmial.com oppdager du straks fordi det ligger rett ved det legitime gmail.com-blokket.

Alfabetisere CSS-klassenavn eller HTML-attributtrekkefølge

Noen team påtvinger alfabetiske klassenavn i class="..."-attributter for å holde PR-differ rene. Lim inn verdien, sorter, lim tilbake. Samme triks fungerer for HTML-attributtrekkefølge når en linter klager, eller for å sortere Tailwind utility-klasser for hånd når prettier-plugin-tailwindcss ikke er installert i repoet.

Sortere en .gitignore slik at fremtidige PR-er differ pent

En .gitignore som alle legger til i blir til en rotekasse. Sorter den alfabetisk én gang, commit det, og fra da av lander tilføyelser på åpenbare steder, og diff:en gir mening for anmeldere. Det samme gjelder .dockerignore, .eslintignore og files-arrayen i tsconfig.json hvis team holder en sånn.

Rydd opp i en TODO-liste limt inn fra chatten

Slack og Discord limer inn lister med rar rekkefølge, halvtomme linjer og duplikater fra folk som sa det samme to ganger. Lim inn, slå på Fjern tomme linjer og Fjern duplikater, sorter. Du får en ren, ordnet liste å slenge inn i oppgavetrackeren din.

Sorter en liste med land-, flyplass- eller valutakoder

ISO 3166-landkoder, IATA-flyplasskoder, ISO 4217-valutakoder: alle bor i lookup-filer som tjener på å være sortert. Natural sort er unødvendig her siden kodene har fast bredde, men ufølsomhet for store og små bokstaver er viktig fordi noen kilder blander USD med usd. Sorter, dedupliser, lim tilbake i lookup-tabellen.

Sortere en liste med package.json-avhengigheter

Avhengighetsnøklene i package.json alfabetiseres av npm 7+ ved hver install, men hvis du redigerer i et prosjekt som fortsatt er låst til npm 6 (eller yarn 1), endres ikke rekkefølgen automatisk. Lim inn avhengighetsnøklene, sorter A-Z, lim tilbake. Din neste PR har ikke en omsorteringscommit på 200 linjer oppå selve endringen.

Sortere linjer: hurtigreferanse

Et kort jukseark over sort-alternativene dette verktøyet eksponerer og kanttilfellene de dekker.

TopicWhat this tool does
Lexicographic vs collationLexicographic-(codepoint-)sort ordner etter rå Unicode-verdi: A (U+0041) før a (U+0061). Collation-sort følger Unicode Collation Algorithm og fletter bokstavskasus inn i hverandre. Verktøyet bruker collation som standard; sett kryss i Skiller mellom store og små bokstaver for codepoint-rekkefølge.
Skille mellom store og små bokstaverStandard er ufølsom: apple, Apple og APPLE sammenlignes likt. Bytt til følsom for rekkefølgen A < a < B < b på tertiært collation-nivå, eller for rå codepoint-rekkefølge når det kombineres med C-locale.
Natural sortSlått på, file2 < file10, fordi 2 og 10 sammenlignes som tall. Slått av, file10 < file2, fordi 1 (U+0031) er mindre enn 2 (U+0032) tegn for tegn. Bruk det til filnavn, versjonsstrenger og enhver liste med innebygde tall.
Locale-bevissthetSort:en respekterer sidens locale, så é ordnes ved siden av e på fransk, det tyske ä sorteres som ae i DIN 5007-2-telefonkatalogrekkefølge, og så videre. Unix-sort gjør det samme hvis LC_COLLATE er satt; LC_ALL=C sort faller tilbake til codepoint-rekkefølge, raskere men behandler aksenter som fremmede bokstaver.
Håndtering av tomme linjerTomme linjer sorteres før enhver ikke-tom linje i stigende rekkefølge, så de klumper seg i toppen. Sett kryss i Fjern tomme linjer for å kaste dem helt. Et avsluttende linjeskift på slutten av innputtet beholdes som det er, slik at utdataet round-tripper gjennom cat og lignende verktøy uten overraskelser.
StabilitetSort:en er stabil: linjer som sammenlignes likt under dine innstillinger beholder sin opprinnelige innbyrdes rekkefølge. Det betyr noe når du sorterer på et prefiks eller i skiftlejeufølsom modus og vil bevare innputtens rekkefølge innenfor en likhetsgruppe. Både V8 (Chrome, Edge, Node) og SpiderMonkey (Firefox) garanterer stabil Array.prototype.sort siden 2019.
Linjeskift (LF vs CRLF)Innput deles på \r\n, \n og \r. Utput slås sammen med \n som standard, slik at det limes pent inn i Linux- og macOS-flyter. Trenger du CRLF for et Windows-verktøy, lim resultatet inn i en Windows-bevisst editor og lagre med det linjeskiftet du vil ha.
TegnkodingInnput behandles som UTF-8 (tekst i nettleseren er allerede dekodet). En innledende UTF-8-BOM bevares på første linje hvis den er der; vil du strippe den, fjerner søsterverktøyet whitespace-cleaner den.

Sortere linjer: ofte stilte spørsmål

Hva er standardrekkefølgen for sort?

Stigende og locale-bevisst, med nettleserens Intl.Collator i sidens locale. Det betyr A < a < B < b, slik som Excel og Google Sheets sorterer, ikke den rå codepoint-rekkefølgen der hver stor bokstav kommer foran hver liten. Vil du ha codepoint-rekkefølge, sett kryss i Skiller mellom store og små bokstaver: det stiller collator:en til en streng tertiær sammenligning og gir samme rekkefølge som LC_ALL=C sort.

Skiller sort:en mellom store og små bokstaver?

Som standard ikke. Apple, apple og APPLE kollapser alle til samme nøkkel, så de klumper seg sammen i utdataet, og deres innbyrdes rekkefølge er den som dukket opp først i innputtet (sort:en er stabil). Sett kryss i Skiller mellom store og små bokstaver for å skille dem; da sorteres APPLE, Apple og apple som tre forskjellige verdier i henhold til tertiært nivå i Unicodes default-collation.

Støtter den natural sort for filnavn som file2 før file10?

Ja. Slå på Natural sort-alternativet, så sammenlignes innebygde tall som tall, slik at file2.log kommer før file10.log, og v1.9 kommer før v1.10. Implementasjonen er numeric: true-alternativet på Intl.Collator, samme primitiv som macOS Finder og Filutforsker bruker for å ordne filnavn.

Kan jeg sortere baklengs (Z til A)?

Ja. Velg Synkende i rekkefølge-toggle. Sort:en kjører først stigende og snus deretter, noe som bevarer stabiliteten på tvers av like nøkler: hvis to linjer sammenlignes likt under dine innstillinger for skiftleje og natural sort, beholder de sin opprinnelige innbyrdes rekkefølge selv etter at den er snudd. Det betyr noe når du sorterer på en delnøkkel som første kolonne i en TSV.

Hva skjer med dupliserte linjer og tomme linjer?

Som standard beholdes begge. Sort:en er stabil, så duplikater beholder sin opprinnelige innbyrdes rekkefølge, og tomme linjer klumper seg i toppen i stigende rekkefølge (de sorteres før enhver ikke-tom streng). Sett kryss i Fjern tomme linjer for å kaste dem før sorteringen, og Fjern duplikater for å smelte like linjer sammen til én. For en dedikert dedup-runde med flere alternativer, bruk Fjern dupliserte linjer.

Er det en størrelsesgrense?

Opp til omtrent 100 000 linjer kjører på under et sekund i nettleseren. Forbi 500 000 linjer begynner du å merke det, hovedsakelig fordi det å rendre resultatpanelet (ikke selve sort:en) blir dyrt. For filer på flere millioner linjer er unix-kommandoen sort med LC_ALL=C sort -u file.txt raskere og kjører out-of-core. GNU coreutils sort-manualen dekker flaggene det er verdt å kunne.

Personvern og hvordan dette fungerer

Teksten din forlater aldri nettleseren din. Oppdelingen, sammenligningen og sammenslåingen kjører alt sammen lokalt. Ingen analyse på innputtet ditt, ingen logger, ingen serverrunde. Selve sammenligningen er nettleserens egen Intl.Collator, som implementerer Unicode Collation Algorithm (UTS #10). Vil du ha bakgrunnsstoff, har Wikipedia en solid oversikt over sorteringsalgoritmer generelt.