GNU/Linux >> Linux Esercitazione >  >> Linux

10 esempi utili del comando di ordinamento in Linux

Comando di ordinamento in Linux

Il comando di ordinamento dispone le righe di testo in modi utili. Questo semplice strumento può aiutarti a ordinare rapidamente le informazioni dalla riga di comando.

Sintassi

sort [options] <filename>

Dovresti notare alcune cose:

  • Quando utilizzi l'ordinamento senza alcuna opzione, vengono applicate le regole predefinite. Aiuta a comprendere le regole predefinite per evitare esiti imprevisti.
  • Quando usi l'ordinamento, i tuoi dati originali sono al sicuro. I risultati del tuo input vengono visualizzati solo sulla riga di comando. Tuttavia, se lo desideri, puoi specificare l'output in un file separato. Ne parleremo più avanti.
  • L'ordinamento è stato originariamente progettato per l'uso con i caratteri ASCII. Non l'ho testato, ma è possibile che codifiche diverse possano produrre risultati inaspettati.

Le regole predefinite nel comando di ordinamento

Queste sono le regole predefinite quando si utilizza l'ordinamento. I primi esempi chiariranno come vengono gestite queste priorità. Quindi esamineremo opzioni specializzate.

  • numeri> lettere
  • minuscolo> maiuscolo

Esempi del comando sort

Lascia che ti mostri alcuni esempi di comando di ordinamento che puoi utilizzare in varie situazioni.

1. Ordina in ordine alfabetico

Il comando di ordinamento predefinito semplifica la visualizzazione delle informazioni in ordine alfabetico. Non sono necessarie opzioni e anche con voci miste, l'ordinamento dalla A alla Z funziona come previsto.

Userò un file di testo di esempio chiamato nomefile.txt e se visualizzi il contenuto del file, questo è ciò che vedrai:

MX Linux
Manjaro
Mint
elementary
Ubuntu

Ora se usi il comando di ordinamento su di esso:

sort filename.txt

Ecco l'output in ordine alfabetico:

elementary
Manjaro
Mint
MX Linux
Ubuntu

2. Ordina per valore numerico [opzione -n]

Prendiamo lo stesso elenco che abbiamo usato per l'esempio precedente e ordiniamo in ordine numerico. Nel caso te lo stessi chiedendo, l'elenco riflette le distribuzioni Linux più popolari (luglio 2019) secondo distrowatch.com.

Modificherò il contenuto del file in modo che gli articoli siano numerati, ma fuori servizio come mostrato di seguito.

1. MX Linux
4. elementary
2. Manjaro
5. Ubuntu
3. Mint
sort filename.txt

Dopo l'ordinamento, il risultato è:

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

Sembra buono, giusto? Puoi fare affidamento su questo metodo per organizzare i tuoi dati in modo accurato, però? Probabilmente no. Diamo un'occhiata a un altro esempio per scoprire perché.

Ecco il mio nuovo testo di esempio:

1
5
10
3
5
2
60
23
432
21

Ora, se uso il comando di ordinamento senza alcuna opzione, ecco cosa ottengo:

[email protected]:~$ sort order.txt
1
10
2
21
23
3
432
5
5
60

NOTA:i numeri sono ordinati solo in base ai caratteri iniziali.

Quando aggiungi il -n opzione, viene ora valutato il valore numerico della stringa anziché solo il primo carattere. Ora puoi vedere di seguito che il nostro elenco è ordinato correttamente.

sort order.txt -n

Ora avrai l'output ordinato correttamente:

1
2
3
5
5
10
21
23
60
432

3. Ordina in ordine inverso [opzione -r]

Per questo, userò di nuovo il nostro elenco di distribuzioni. La funzione inversa è autoesplicativa. Invertirà l'ordine di qualsiasi contenuto che hai nel tuo file.

sort filename.txt -r

E qui hai il testo di output in ordine inverso:

5. Ubuntu
4. elementary
3. Mint
2. Manjaro
1. MX Linux

4. Ordinamento casuale [opzione -R]

Se hai accidentalmente schiacciato il tasto Maiusc durante il tentativo della funzione inversa, potresti aver ottenuto strani risultati. -R riorganizza l'output in ordine casuale.

sort filename.txt -R

Ecco l'output ordinato in modo casuale:

4. elementary
1. MX Linux
2. Manjaro
5. Ubuntu
3. Mint

5. Ordina per mesi [opzione -M]

Sort ha anche funzionalità integrate per organizzare per mese. Riconosce diversi formati in base alle informazioni specifiche della locale. Ho cercato di dimostrare alcuni test unqiue per dimostrare che si organizzerà per data-giorno, ma non per anno. Le abbreviazioni dei mesi vengono visualizzate prima dei nomi completi.

Ecco il file di testo di esempio in questo esempio:

March
Feb
February
April
August
July
June
November
October
December
May
September
1
4
3
6
01/05/19
01/10/19
02/06/18

Ordiniamo per mesi usando l'opzione -M:

sort filename.txt -M

Ecco l'output che vedrai:

01/05/19
01/10/19
02/06/18
1
3
4
6
Jan
Feb
February
March
April
May
June
July
August
September
October
November
December

6. Salva i risultati ordinati in un altro file

Come accennato in precedenza, l'ordinamento non modifica il file originale per impostazione predefinita. Se hai bisogno di salvare il contenuto ordinato, puoi farlo.

Per questo esempio, ho creato un nuovo file in cui voglio che le informazioni ordinate vengano stampate e salvate con il nome filename_sorted.txt.

Attenzione: Se provi a indirizzare i tuoi dati ordinati allo stesso file, il contenuto del tuo file verrà cancellato.

sort filename.txt -n > filename_sorted.txt

Se usi il comando cat sul file di output, questo sarà il suo contenuto:

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

7. Ordina colonna specifica [opzione -k]

Se hai una tabella nel tuo file, puoi usare il -k opzione per specificare quale colonna ordinare. Ho aggiunto alcuni numeri arbitrari come terza colonna e visualizzerò l'output ordinato per ciascuna colonna. Ho incluso diversi esempi per mostrare la varietà di output possibile. Le opzioni vengono aggiunte dopo il numero di colonna.

1. MX Linux 100
2. Manjaro 400
3. Mint 300
4. elementary 500
5. Ubuntu 200
sort filename.txt -k 2

Questo ordinerà il testo sulla seconda colonna in ordine alfabetico:

4. elementary 500
2. Manjaro 400
3. Mint 300
1. MX Linux 100
5. Ubuntu 200
sort filename.txt -k 3n

Questo ordinerà il testo in base ai numeri sulla terza colonna.

1. MX Linux 100
5. Ubuntu 200
3. Mint 300
2. Manjaro 400
4. elementary 500
sort filename.txt -k 3nr

Come il comando precedente solo che l'ordinamento è stato invertito.

4. elementary 500
2. Manjaro 400
3. Mint 300
5. Ubuntu 200
1. MX Linux 100

8. Ordina e rimuovi i duplicati [opzione -u]

Se hai un file con potenziali duplicati, -u opzione ti renderà la vita molto più facile. Ricorda che l'ordinamento non apporterà modifiche al file di dati originale. Ho scelto di creare un nuovo file con solo gli elementi duplicati. Di seguito vedrai l'input e quindi il contenuto di ciascun file dopo l'esecuzione del comando.

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
sort filename.txt -u > filename_duplicates.txt

Ecco i file di output ordinati e senza duplicati.

1. MX Linux 
2. Manjaro 
3. Mint 
4. elementary 
5. Ubuntu 

9. Ignora maiuscole e minuscole durante l'ordinamento [opzione -f]

Molte distribuzioni moderne che eseguono l'ordinamento implementeranno ignore case per impostazione predefinita. Se il tuo non lo fa, aggiungendo il -f l'opzione produrrà i risultati attesi.

sort filename.txt -f

Ecco l'output in cui i casi vengono ignorati dal comando di ordinamento:

alpha
alPHa
Alpha
ALpha
beta
Beta
BEta
BETA

10. Ordina per valori numerici umani [opzione -h]

Questa opzione consente il confronto di valori alfanumerici come 1k (cioè 1000).

sort filename.txt -h

Ecco l'output ordinato:

10.0
100
1000.0
1k

Spero che questo tutorial ti abbia aiutato a ottenere l'utilizzo di base del comando sort in Linux. Il comando Sort viene spesso utilizzato in combinazione con il comando uniq in Linux per ordinare in modo univoco i file di testo.

Se hai qualche trucco interessante, perché non condividerlo con noi nella sezione commenti?


Linux
  1. 12 utili esempi di comandi Wget in Linux

  2. Ordina il comando in Linux con esempi

  3. 5 Esempi pratici del comando dd in Linux

  4. Esempi utili del comando Docker ps

  5. ordina Esempi di comandi in Linux

comando pwd in Linux con esempi utili

Comando SS in Linux con esempi utili

Ordina il comando in Linux con esempi

Esempi essenziali del comando ps in Linux

15 esempi super utili del comando Trova in Linux

12 Esempi utili di comandi data di Linux