Sortera (Unix)
sort är ett kommando för Unix- och Unix-liknande operativsystem , och mer allmänt för POSIX [1] -systemen , som läser en eller flera textfiler (eller standardinmatning ) och sorterar raderna alfabetiskt eller enligt de angivna kriterierna, vilket ger resultatet på standardutdata eller på en fil. Det är en typ av filter .
sort kan också verifiera att de lästa raderna redan är sorterade enligt ett visst kriterium. I det här fallet ger den inga resultat, och dess utdatavärde är lika med 0om data redan är sorterad eller större än 0om den inte är det.
sort kan direkt ta bort dubbletter av rader som liknar kommandot uniq .
Syntax
Den allmänna syntaxen för sortering är som följer:
sortera [ alternativ ] [-] [ fil1 [ fil2 ...]]
De valfria filparametrarna indikerar textfilerna från vilka raderna ska sorteras. Om flera filer anges sorteras de individuellt och sedan slås raderna samman så att det slutliga resultatet också sorteras. Om ingen fil anges läses raderna som ska sorteras från standardinmatning .
Det dubbla bindestrecket --(valfritt) indikerar att följande parametrar inte ska betraktas som alternativ.
Alternativ
Bland huvudalternativen är:
-c- Kontrollera att läsraderna redan är sorterade enligt de angivna kriterierna. I det här fallet producerar kommandot inga meddelanden, och utdatavärdet är lika med
0om data redan är sorterade eller annorlunda än0om de inte är det. -m- Det förutsätter att de angivna filerna redan är sorterade och fortsätter att slå samman sina rader.
-o nome_file- Skriver resultatet till den angivna filen istället för till standardutdata .
-u- Eliminera duplicerade rader från resultatet (liknande vad uniq- kommandot gjorde ).
-f- Den skiljer inte mellan versaler och gemener.
-r- Vänder om beställningsriktningen och ger resultat som börjar med det största värdet.
-n- Sortera numeriskt istället för alfabetiskt.
-i- Ignorera tecken som inte skrivs ut.
-k chiave_di_ordinamento- Indikerar en del av linjen som ska användas som sorteringsnyckel. Du kan ange det här alternativet flera gånger för att definiera flera sorteringsnycklar som ska användas i kaskad.
-t carattere- Anger det tecken som ska användas som fältavgränsare (istället för standardvärdet) när sorteringsnycklar definieras.
GNU - versionen av sort erbjuder också följande alternativ, bland annat:
-g- Den sorterar numeriskt och accepterar också de siffror som känns igen av standard C-språkbiblioteksfunktionen ( t.ex. siffror
strtod()uttryckta i vetenskaplig notation). -s- Den utför en stabil sortering (med samma sorteringsnycklar behåller den den ursprungliga ordningen på raderna).
Sorteringsnycklar
Med detta alternativ -kär det möjligt att definiera en sorteringsnyckel på en del av linjen. Genom att ange flera alternativ -kkan du definiera flera sorteringsnycklar som ska användas i kaskad.
Syntaxen för en sorteringsnyckel är som följer:
numero_campo_iniziale[.indice_primo_carattere][tipo][,numero_campo_finale[.indice_ultimo_carattere][tipo]]
initial_field_number är ett numeriskt värde som anger numret på fältet (som börjar från 1) som ska inkluderas i nyckeln, och index_first_character är indexet för det första tecknet i fältet som ska beaktas (med början från 1).
På liknande sätt indikerar final_field_number , om specificerat, det sista fältet som ska inkluderas i nyckeln, och last_character_index är indexet för det sista tecknet i nämnda fält.
Båda kan följas av typ , vilket är ett tecken som anger vilken typ av sortering som ska utföras för det specifika fältet (t.ex. nför att ange en numerisk sortering, fför att indikera att inte ta hänsyn till skillnaden mellan versaler och gemener, rför att vända om sorteringen).
Uppdelningen av en rad i fält utförs på basis av avgränsningstecknet som anges med alternativet -t. I sin frånvaro betraktas vilken sekvens av mellanslag som helst som en separator.
Exempel
Alfabetisk sortering
Sortera alfabetiskt för hela raden:
$ cat exempel.txt John 200 Alice 30 Karl 100 Bruno 5 $ sortera exempel.txt Alice 30 Bruno 5 Karl 100 John 200
Numerisk sortering med nyckel
Sortera numeriskt med det andra fältet som nyckel:
$ cat exempel.txt John 200 Alice 30 Karl 100 Bruno 5 $ sort -k 2 -n exempel.txt Bruno 5 Alice 30 Karl 100 John 200
Sortera filer och kataloger efter fallande storlek (femte kolumnen):
$ ls -l | sortera -n -r -k 5 -rw-r - r-- 1 rotrot 1057 1 mars 20:12 ring + stjärna -rw-r - r-- 1 rotrot 727 Mar 1 20:12 A_star -rw-r - r-- 1 rotrot 535 1 Mar 20:12 star2 -rw-r - r-- 1 rotrot 505 Mar 1 20:12 spirals_and_stars -rw-r - r-- 1 rotrot 503 1 Mar 20:12 kurvor -rw-r - r-- 1 rotrot 475 1 mar 20:12 simily -rw-r - r-- 1 rotrot 458 1 Mar 20:12 ring -rw-r - r-- 1 rotrot 415 Mar 1 20:12 stjärnor -rw-r - r-- 1 rotrot 387 1 Mar 20:12 sprial -rw-r - r-- 1 rotrot 377 1 Mar 20:12 polys
Anteckningar
Relaterade artiklar
- sorteringsalgoritm
- uniq - Tar bort dubbletter av rader i en sorterad fil.
Externa länkar
- Sortera : Sortera textfiler , i GNU Texutils manual . Hämtad 20 maj 2008 .
- Sortera , på Linux Man Pages . Hämtad 21 maj 2008 .
- ( EN ) sortera (1) , på Solaris 10 Reference Manual Collection - man-sidor . Hämtad 21 maj 2008 .