GNU/Linux >> Linux Esercitazione >  >> Linux

Come ordinare i file in Linux usando il comando di ordinamento

Il comando Ordina è utile per ordinare/ordinare le righe nei file di testo. È possibile ordinare i dati in un file di testo e visualizzare l'output sullo schermo oppure reindirizzarlo a un file. In base alle tue esigenze, sort fornisce diverse opzioni della riga di comando per ordinare i dati in un file di testo.

Sintassi del comando di ordinamento:

$ sort [-options]

Ad esempio, ecco un file di prova:

$ cat test
zzz
sss
qqq
aaa
BBB
ddd
AAA

Ed ecco cosa ottieni quando il comando di ordinamento viene eseguito su questo file senza alcuna opzione. Ordina le righe nel file di prova e visualizza l'output ordinato.

$ sort test
aaa
AAA
BBB
ddd
qqq
sss
zzz

1. Esegui l'ordinamento numerico usando l'opzione -n

Se vogliamo ordinare in base al valore numerico, possiamo usare -n o –ordinamento-numerico opzione.

Crea il seguente file di prova per questo esempio:

$ cat test
22 zzz
33 sss
11 qqq
77 aaa
55 BBB

Il seguente comando di ordinamento ordina le righe nel file di prova in base al valore numerico nella prima parola della riga e visualizza l'output ordinato.

$ sort -n test
11 qqq
22 zzz
33 sss
55 BBB
77 aaa

2. Ordina i numeri leggibili dall'uomo usando l'opzione -h

Se vogliamo ordinare i numeri leggibili dall'uomo (ad es. 2K 1M 1G), allora possiamo usare -h o –ordinamento-numerico-umano opzione.

Crea il seguente file di prova per questo esempio:

$ cat test
2K
2G
1K
6T
1T
1G
2M

Il seguente comando di ordinamento ordina i numeri leggibili dall'uomo (cioè 1K =1 mila, 1M =1 milione, 1G =1 Giga, 1T =1 Tera) nel file di test e visualizza l'output ordinato.

$ sort -h test
1K
2K
2M
1G
2G
1T
6T

3. Ordina i mesi di un anno usando l'opzione -M

Se vogliamo ordinare in base ai mesi dell'anno, possiamo usare -M o –ordinamento-mese opzione.

Crea il seguente file di prova per questo esempio:

$ cat test
sept
aug
jan
oct
apr
feb
mar11

Il seguente comando di ordinamento ordina le righe nel file di prova in base all'ordine del mese. Nota, le righe nel file devono contenere almeno 3 caratteri del nome del mese all'inizio della riga (ad esempio jan, feb, mar). Se diamo, ja per gennaio o au per agosto, il comando di ordinamento non lo considererebbe come nome del mese.

$ sort -M test
jan
feb
mar11
apr
aug
sept
oct

4. Verifica se il contenuto è già ordinato utilizzando l'opzione -c

Se vogliamo verificare che i dati nel file di testo siano ordinati o meno, possiamo usare -c oppure –check, –check=diagnose-first opzione.

Crea il seguente file di prova per questo esempio:

$ cat test
2
5
1
6

Il seguente comando di ordinamento controlla se i dati del file di testo sono ordinati o meno. In caso contrario, mostra la prima occorrenza con numero di riga e valore disordinato.

$ sort -c test
sort: test:3: disorder: 1

5. Invertire l'output e verificare l'unicità utilizzando le opzioni -r e -u

Se vogliamo ottenere l'output ordinato in ordine inverso, possiamo usare -r o –indietro opzione. Se il file contiene righe duplicate, per ottenere righe univoche nell'output ordinato, è possibile utilizzare l'opzione "-u".

Crea il seguente file di prova per questo esempio:

$ cat test
5
2
2
1
4
4

Il seguente comando di ordinamento ordina le righe nel file di prova in ordine inverso e visualizza l'output ordinato.

$ sort -r test
5
4
4
2
2
1

Il seguente comando di ordinamento ordina le righe nel file di prova in ordine inverso e rimuove le righe duplicate dall'output ordinato.

$ sort -r -u test
5
4
2
1

6. Ordina il contenuto in modo selettivo, Personalizza il delimitatore, Scrivi l'output in un file usando le opzioni -k, -t, -o

Se vogliamo ordinare in base alla colonna o alla posizione della parola nelle righe del file di testo, è possibile utilizzare l'opzione "-k". Se ogni parola in ogni riga del file è separata da un delimitatore eccetto "spazio", allora possiamo specificare il delimitatore usando l'opzione "-t". Possiamo ottenere l'output ordinato in qualsiasi file di output specificato (usando l'opzione "-o") invece di visualizzare l'output sull'output standard.

Crea il seguente file di prova per questo esempio:

$ cat test
aa aa zz
aa aa ff
aa aa tt
aa aa kk

Il seguente comando di ordinamento ordina le righe nel file di prova sulla terza parola di ciascuna riga e visualizza l'output ordinato.

$ sort -k3 test
aa aa ff
aa aa kk
aa aa tt
aa aa zz
$ cat test
aa|5a|zz
aa|2a|ff
aa|1a|tt
aa|3a|kk

Qui, vengono utilizzate diverse opzioni del tutto. Nel file di prova, le parole in ogni riga sono separate dal delimitatore '|'. Ordina le righe nel file di prova sulla seconda parola di ogni riga in base al valore numerico e memorizza l'output ordinato nel file di output specificato.

$ sort -n -t'|' -k2 test -o outfile

Il contenuto del file di output è mostrato di seguito.

$ cat outfile
aa|1a|tt
aa|2a|ff
aa|3a|kk
aa|5a|zz


Linux
  1. Come rinominare i file in Linux

  2. Come ordinare i file in base alle loro autorizzazioni usando Ls?

  3. Come riavviare Linux utilizzando la riga di comando

  4. Come trasferire file in modo sicuro utilizzando il comando SCP in Linux

  5. Come creare file sparsi in Linux usando il comando 'dd'

Come testare la velocità di Internet usando la riga di comando in Linux

Come rinominare i file usando la riga di comando in Linux

Come ordinare i file in Linux (GUI e Shell)

Come copiare file in Linux usando il comando CP

Come contare i file nella directory su Linux

Come scaricare file in Rocky Linux 8 sulla riga di comando usando wget