Ricerca nel sito web

Linux sort Tutorial sui comandi per principianti (8 esempi)


Su questa pagina

  1. Comando di ordinamento di Linux
  2. D1. Come usare il comando sort?
  3. Q2. Come fare in modo che l'ordinamento ignori gli spazi vuoti iniziali?
  4. Q3. Come fare in modo che l'ordinamento ignori maiuscole e minuscole?
  5. Q4. Come fare in modo che l'ordinamento confronti i numeri?
  6. D5. Come far funzionare l'ordinamento con valori numerici leggibili dall'uomo?
  7. D6. Come fare in modo che l'ordinamento controlli solo l'input ordinato?
  8. D7. Come fare in modo che l'ordinamento unisca i file già ordinati?
  9. D8. Come fare in modo che sort scriva il risultato in un file?
  10. Conclusione

Cerchi un'utilità della riga di comando per ordinare il contenuto nei file di testo? Non guardare oltre Sort, uno strumento creato appositamente per questo scopo. In questo tutorial, discuteremo questo comando utilizzando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi qui sono stati testati sulla macchina Ubuntu 22.04 LTS.

Comando di ordinamento di Linux

Il comando Ordina consente di ordinare le righe in un file di testo. Di seguito la sua sintassi:

sort [OPTION]... [FILE]...

Ed ecco come la pagina man degli strumenti lo descrive:

Write sorted concatenation of all FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.

Di seguito sono riportati alcuni esempi in stile Q&A che dovrebbero darti una buona idea di come funziona il comando sort.

Q1. Come usare il comando sort?

Supponiamo di avere un file che contiene alcuni nomi e di volerli ordinare in ordine alfabetico. Quindi tutto ciò che devi fare è passare il nome del file come input al comando sort.

Per esempio:

sort file1

Quindi, se il file 1 conteneva le seguenti righe:

Zimbabwe
Serbia
Norway
Australia

Quindi l'output sarebbe:

Australia
Norway
Serbia
Zimbabwe

Ecco un esempio:

D2. Come fare in modo che l'ordinamento ignori gli spazi vuoti iniziali?

A seconda delle impostazioni internazionali, potresti vedere l'ordinamento produrre risultati imprevisti quando le righe contengono spazi vuoti iniziali. Per esempio:

Supponiamo che file contenga le seguenti righe:

Zimbabwe
 Serbia
  Norway
Australia

E corri sort, solo per vedere il seguente risultato:

  Norway
 Serbia
Australia
Zimbabwe

Questo può sembrare inaspettato, ma ciò che è realmente accaduto è che le righe che contengono spazi iniziali sono state ordinate in base agli spazi vuoti, mentre le altre sono state ordinate alfabeticamente. Per assicurarsi che il comando Ordina ignori gli spazi iniziali, utilizzare l'opzione -b. Quindi, in tal caso, otterrai il seguente risultato:

Australia
  Norway
 Serbia
Zimbabwe

D3. Come fare in modo che l'ordinamento ignori maiuscole e minuscole?

Se un file contiene parole/righe che iniziano sia con caratteri maiuscoli che minuscoli, sort mostra quelli con maiuscolo in alto. Tuttavia, se lo desideri, puoi modificare questo comportamento utilizzando l'opzione della riga di comando -f.

Per esempio:

sort -f file1

D4. Come fare in modo che l'ordinamento confronti i numeri?

Supponiamo che un file contenga solo numeri e tu voglia ordinarli per ordinarli. Quindi questo può essere reso possibile utilizzando l'opzione della riga di comando -g.

sort -g file1

Ad esempio un file con i seguenti contenuti:

32000
2500
50000
54

Può essere ordinato utilizzando il comando sort per produrre i seguenti risultati:

54
2500
32000
50000

Q5. Come far funzionare l'ordinamento con valori numerici leggibili dall'uomo?

Nel caso in cui desideri che sort funzioni con valori numerici leggibili dall'uomo come 1K, 2G, ecc., utilizza l'opzione della riga di comando -h.

sort -h file1

Quindi, ad esempio, un file con le seguenti righe:

1M
2G
3K

Può essere ordinato nel modo seguente utilizzando l'opzione -h:

3K
1M
2G

D6. Come fare in modo che l'ordinamento controlli solo l'input ordinato?

Nel caso in cui desideri che sort controlli solo se un file è ordinato o meno, usa l'opzione della riga di comando -c.

sort -c file1

Ad esempio, se file1 contiene le seguenti righe:

dhg
lkh
zyb
abd

Quindi usando -c vedrai sort produrre il seguente output:

sort: file1:4: disorder: abd

Quindi osservi che lo strumento non solo indica che c'è un disturbo, ma ne emette anche la posizione.

D7. Come fare in modo che l'ordinamento unisca i file già ordinati?

Se vuoi ordinare per unire due file già ordinati, usa l'opzione della riga di comando -m.

sort -m file1 file2

Ad esempio, sia file1 che file2 contenevano le seguenti righe nel mio caso:

abd
dhg
lkh
zyb

Ed ecco come l'opzione -m ha unito questi file:

abd
abd
dhg
dhg
lkh
lkh
zyb
zyb

D8. Come fare in modo che sort scriva il risultato in un file?

Per impostazione predefinita, il comando sort scrive l'output in STDOUT. Tuttavia, puoi forzarlo a scrivere su un determinato file usando l'opzione -o.

Per esempio:

sort file1 -o output.txt

Conclusione

Il comando Ordina fornisce molte opzioni. Ne abbiamo discusso alcuni fondamentali qui. Ti suggeriamo di esercitarti prima e, una volta terminato, vai alla pagina man dei comandi per saperne di più.