close

Sortera (Unix)

Hoppa till navigering Hoppa till sökning
Image
sortera --hjälp

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 än 0om 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

  1. ^ Sortera på The Open Group Base Specifications Issue 6 IEEE Std 1003.1 , 2004 Edition . Hämtad 20 maj 2008 .

Relaterade artiklar

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 .