Ricerca…


introduzione

sort è un comando Unix per ordinare i dati in file (s) in una sequenza.

Sintassi

  • ordina [opzione] nomefile

Parametri

Opzione Senso
-u Rendi uniche le singole linee di output

Osservazioni

Manuale utente completo di lettura sort online

Ordina l'output del comando

sort comando sort è usato per ordinare una lista di linee.

Input da un file

sort file.txt  

Input da un comando

È possibile ordinare qualsiasi comando di output. Nell'esempio un elenco di file che segue un modello.

find * -name pattern | sort

Rendi unico l'output

Se ciascuna riga dell'output deve essere unica, aggiungi l'opzione -u .

Per visualizzare il proprietario dei file nella cartella

ls -l | awk '{print $3}' | sort -u

Ordinamento numerico

Supponiamo di avere questo file:

test>>cat file
10.Gryffindor
4.Hogwarts
2.Harry
3.Dumbledore
1.The sorting hat

Per ordinare numericamente questo file, usare sort con l'opzione -n:

test>>sort -n file  

Questo dovrebbe ordinare il file come di seguito:

1.The sorting hat  
2.Harry  
3.Dumbledore  
4.Hogwarts  
10.Gryffindor

Ordine di inversione: per invertire l'ordine dell'ordinamento, utilizzare l'opzione -r

Per invertire l'ordinamento del file sopra, utilizzare:

sort -rn file

Questo dovrebbe ordinare il file come di seguito:

10.Gryffindor
4.Hogwarts
3.Dumbledore
2.Harry
1.The sorting hat

Ordina per chiavi

Supponiamo di avere questo file:

test>>cat Hogwarts 
  Harry        Malfoy        Rowena        Helga
  Gryffindor   Slytherin     Ravenclaw     Hufflepuff
  Hermione     Goyle         Lockhart      Tonks
  Ron          Snape         Olivander     Newt
  Ron          Goyle         Flitwick      Sprout

Per ordinare questo file usando una colonna come chiave usa l'opzione k:

test>>sort -k 2 Hogwarts

Questo ordinerà il file con la colonna 2 come chiave:

  Ron        Goyle        Flitwick        Sprout
  Hermione   Goyle        Lockhart        Tonks
  Harry      Malfoy       Rowena          Helga
  Gryffindor Slytherin    Ravenclaw       Hufflepuff
  Ron        Snape        Olivander       Newt

Ora se dobbiamo ordinare il file con una chiave secondaria insieme alla chiave primaria, usa:

sort -k 2,2 -k 1,1 Hogwarts 

Questo ordinerà innanzitutto il file con la colonna 2 come chiave primaria, quindi ordinerà il file con la colonna 1 come chiave secondaria:

  Hermione        Goyle        Lockhart        Tonks
  Ron             Goyle        Flitwick        Sprout
  Harry           Malfoy       Rowena          Helga
  Gryffindor      Slytherin    Ravenclaw       Hufflepuff
  Ron             Snape        Olivander       Newt

Se abbiamo bisogno di ordinare un file con più di 1 chiave, allora per ogni opzione -k dobbiamo specificare dove finisce l'ordinamento. Quindi, -k1,1 significa iniziare l'ordinamento nella prima colonna e terminare l'ordinamento nella prima colonna.

-t opzione

Nell'esempio precedente il file aveva il delimitatore predefinito - tab. In caso di ordinamento di un file con delimitatore non predefinito, è necessario l'opzione -t per specificare il delimitatore. Supponiamo di avere il file come di seguito:

test>>cat file
5.|Gryffindor
4.|Hogwarts
2.|Harry
3.|Dumbledore
1.|The sorting hat

Per ordinare questo file secondo la seconda colonna, utilizzare:

test>>sort -t "|" -k 2 file

Questo ordinerà il file come di seguito:

3.|Dumbledore
5.|Gryffindor
2.|Harry
4.|Hogwarts
1.|The sorting hat


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow