GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ordina il comando in Linux con esempi

Il comando sort è una delle utilità di base di GNU utilizzata per ordinare il contenuto in un ordine particolare. Può ordinare il contenuto in diversi modi che includono in ordine alfabetico, numerico, per mese, in ordine inverso, ecc. Ecco alcuni punti chiave che devi tenere a mente riguardo al comando di ordinamento:

  • Le cifre vengono visualizzate prima delle lettere
  • Per ogni lettera, vengono ordinate prima le minuscole.
  • Per impostazione predefinita, gli spazi vengono utilizzati come separatori di campo. Possono essere utilizzati anche altri separatori di campo.

In questo post, ti mostreremo l'utilizzo di base e alcune opzioni comuni del comando sort in Linux. Testeremo tutti i comandi su Ubuntu 20.04 LTS . Tuttavia, puoi applicare gli stessi comandi su altre distribuzioni Linux.

La sintassi del comando sort è la seguente:

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

Utilizzo di base del comando di ordinamento

Utilizzando il comando di ordinamento senza alcuna opzione della riga di comando, il contenuto di un file specificato viene ordinato in ordine alfabetico.

Di seguito è riportato il nostro sample1.txt file che useremo come esempio.

Per ordinare il contenuto di sample1.txt file, il comando sarebbe:

$ sort sample1.txt

Ecco l'output del comando precedente che mostra il contenuto in ordine alfabetico.

Se il file contiene sia alfabeti che numeri, il comando di ordinamento ordina i numeri prima degli alfabeti. Di seguito è riportato il nostro file di esempio che contiene sia numeri che alfabeti:

Ecco l'output del file sopra dopo l'ordinamento dove puoi vedere i numeri sono ordinati prima degli alfabeti.

Opzioni comando di ordinamento

Il comando di ordinamento fornisce molte opzioni che ne espandono l'utilità. Diamo un'occhiata ad alcune delle opzioni e a come usarle.

Ordina in ordine inverso

Per ordinare il contenuto del file in ordine inverso, usa -r opzione. Ad esempio, di seguito è riportato il contenuto del nostro file di esempio che vogliamo ordinare in ordine alfabetico inverso.

Per ordinare il contenuto di questo file in ordine inverso, usa -r opzione come segue:

$ sort -r sample1.txt

Ordina in ordine numerico

Per ordinare i dati numericamente, usa -n opzione con il comando di ordinamento. Questa opzione è utile se il tuo file contiene numeri e vuoi ordinarli dal numero più basso al più alto o dal più alto al più basso. Tieni presente che nell'ordinamento predefinito, 113 sarebbe considerato inferiore a 2.

Di seguito è riportato un esempio di ordinamento predefinito del nostro file di esempio. Tieni presente che nell'ordinamento predefinito, l'ordinamento viene eseguito in base al primo numero. Se il primo numero è lo stesso, viene ordinato in base al secondo numero. Come nell'esempio seguente, 113 è minore di 13 e 2.

Per ordinare i contenuti sopra in modo numerico (dal numero più basso al più alto), usa -n opzione come segue:

$ sort -n sample2.txt

Ordina per mese

Il comando di ordinamento predefinito ordina il contenuto del file in ordine alfabetico. Se un file contiene un elenco di nomi di mesi, puoi ordinarli per mese utilizzando -M comando. Ad esempio, di seguito è riportato il nostro file di esempio contenente i nomi dei mesi.

Per ordinare il contenuto del file di cui sopra per mesi, utilizza -M opzione come segue:

$ sort -M sample3.txt

Ordina in base al numero di colonna

Per impostazione predefinita, il comando di ordinamento avvia l'ordinamento del contenuto in base al primo carattere della prima colonna.

Ad esempio, di seguito è riportato il nostro file di esempio che contiene due colonne; nomi dei frutti e rispettivi prezzi. Se utilizziamo l'ordinamento predefinito, verrebbe eseguito in base alla prima colonna (contenente i nomi dei frutti).

Per ordinare il contenuto del file sopra in base alla seconda colonna(prezzi), dovremo usare il comando -k come segue:

$ sort -k2 -n sample1.txt

Dove -k2 indica al comando di ordinamento di ordinare sulla seconda colonna e -n viene utilizzato per l'ordinamento numerico.

Il comando sopra ordinerà il contenuto in base ai loro prezzi (dal più basso al più alto).

Usa un separatore di campo diverso

Per impostazione predefinita, il comando di ordinamento utilizza lo spazio come separatore di campo. Per utilizzare un separatore di campo diverso dallo spazio, utilizza -t opzione. Di seguito è riportato il nostro file di esempio che vogliamo ordinare in base alla seconda colonna (separata da virgole ).

Il comando per ordinare il file sopra in base alla seconda colonna sarebbe:

$ sort -k2 -n -t “,” sample1.txt

Dove -k2 indica al comando di ordinamento di ordinare sulla seconda colonna, -n viene utilizzato per l'ordinamento numerico e -t viene utilizzato per specificare il separatore di campo.

Ordina e rimuovi duplicati

Il -u l'opzione con il comando di ordinamento rimuove anche i duplicati insieme all'ordinamento del contenuto. Di seguito è riportato il nostro file di esempio che contiene i valori duplicati.

Per ordinare questo file in ordine alfabetico e rimuovere anche i valori duplicati, il comando sarebbe:

$ sort -u sample1.txt

Questo è l'output del file ordinato con i duplicati rimossi.

Verifica input ordinato

Usando il -c opzione con il comando di ordinamento, puoi controllare se un file è stato ordinato in precedenza o meno. Se un file è stato ordinato in precedenza, non vedrai alcun output. Tuttavia, se il file non è ordinato, mostrerà le righe che sono fuori ordine.

Ecco il nostro file di esempio:

Per verificare se questo file è già ordinato o meno, usa -c opzione come segue:

$ sort -c sample.txt

Poiché il nostro file di esempio è già stato ordinato, non viene visualizzato alcun output.

Salva l'output ordinato in un file

Il comando Ordina mostra solo l'output ordinato sul Terminale; non lo salva. Per salvare l'output ordinato in un file separato, utilizzare l'operatore di reindirizzamento. Ad esempio, per salvare l'output ordinato di file.txt in un nuovo file denominato sortedfile.txt , usa il comando seguente:

$ sort file.txt > sortedfile.txt

Comando di ordinamento utilizzando l'opzione Pipe

È possibile ordinare l'output di altri comandi collegandoli al comando di ordinamento. Ad esempio, vogliamo ordinare numericamente un elenco di file/directory nella directory Home in base alle loro dimensioni. Possiamo farlo usando ls comando e pipettarne l'output per ordinare il comando come segue.

$ ls -l /home/kbuzdar/ | sort -nk5

Ecco l'output del comando precedente in cui puoi vedere i file ordinati in base alle loro dimensioni.

In questo post, abbiamo spiegato la sintassi di base e l'utilizzo del comando sort in Linux. Abbiamo anche spiegato alcune delle opzioni comuni per estenderne la funzionalità. Per visualizzare la guida e ulteriori informazioni sulle opzioni di ordinamento, visita la pagina man di ordinamento o digita sort –help nel Terminale.


Ubuntu
  1. Comando sorgente Linux con esempi

  2. Comando Tee Linux con esempi

  3. Comando testa di Linux con esempi

  4. Ordina il comando in Linux con esempi

  5. Comando JQ in Linux con esempi

Comando Tr in Linux con esempi

15 Comando Linux ps con esempi

Comando CD Linux con esempi

Wall Command in Linux con esempi

Comando IP Linux con esempi

w Comando spiegato con esempi in Linux