GNU/Linux >> Linux Esercitazione >  >> Linux

Comando di ordinamento Linux con esempi

Introduzione

Il sort command è uno strumento per ordinare il contenuto dei file e stampare il risultato nell'output standard. Riordinare i contenuti di un file in modo numerico o alfabetico e disporre le informazioni in ordine crescente o decrescente migliora la leggibilità.

In questo tutorial imparerai a usare il sort di Linux comando e vedere esempi utili.

Prerequisiti

  • Un sistema che esegue Linux.
  • Accesso a un terminale.

Sintassi di ordinamento Linux

Il sort comando ha la seguente sintassi:

sort [options] filename

Esecuzione del sort comando senza [options] restituisce il contenuto del file e applica le regole di ordinamento predefinite per la locale corrente.

Le regole principali sono:

  • Righe che iniziano con un numero vai prima delle righe che iniziano con una lettera , disposti in crescente ordine (1-10).
  • Le righe che iniziano con lettere sono ordinate in crescente ordine alfabetico (A-Z).

Ad esempio, il seguente file ha più righe casuali:

Esegui sort per disporre il contenuto del file nel modo predefinito:

L'esempio sopra mostra come il sort il comando dispone le righe per impostazione predefinita quando non sono specificate opzioni.

Opzioni di ordinamento Linux

Specifica un'opzione per modificare l'sort regole di ordinamento dei comandi. Le opzioni più utilizzate sono elencate nella tabella seguente:

Modulo di opzione breve Modulo opzione lungo Descrizione
-b --ignore-leading-blanks Cause sort per ignorare gli spazi iniziali.
-d --dictionary-order Cause sort considerare solo spazi vuoti e caratteri alfanumerici.
-f --ignore-case Ignora la regola di ordinamento delle maiuscole e minuscole e cambia tutte le lettere minuscole in maiuscole prima del confronto.
/ --files0-from=F Legge l'input dai file specificati da NUL -nomi terminati nel F specificato file. Se F è - , sort legge i nomi dallo standard input.
-M --month-sort Ordina le righe in base ai mesi (gennaio-dicembre).
-h --human-numeric-sort Confronta i numeri leggibili dall'uomo (ad es. 2K 1G).
-n --numeric-sort Confronta i dati in base a valori numerici di stringa.
-R --random-sort Ordina i dati in base a un hash casuale di chiavi ma raggruppa insieme chiavi identiche.
/ --random-source=FILE Ottiene byte casuali dal FILE specificato .
-r --reverse Inverte i risultati del confronto.
/ --sort=WORD Ordina i dati in base alla WORD specificata :numero-generale -g , umano-numerico -h , mese -M , numerico -n , -R casuale , versione -V .
-c --check, --check=diagnose-first Controlla se l'input è già ordinato ma non lo ordina.
/ --debug Annota la parte della riga utilizzata per l'ordinamento.
-k --key=KEYDEF Ordina i dati utilizzando il KEYDEF specificato , che fornisce la posizione e il tipo della chiave.
-m --merge Cause sort per unire file già ordinati.
-o --output=FILE Reindirizza l'output a FILE invece di stamparlo in output standard.
-t --field-separator=SEP Utilizza il SEP specificato separatore invece della transizione da non vuoto a vuoto.
-z --zero-terminated Fa in modo che l'ordinamento utilizzi NUL come delimitatore di riga invece del carattere di nuova riga.
/ --help Visualizza il file della guida con l'elenco completo delle opzioni ed esce.
/ --version Emette la versione del programma ed esce.

Esempi di ordinamento Linux

Di seguito sono riportati esempi di utilizzo del sort comando per disporre il contenuto del file in diversi modi.

Esempio 1:salva l'output su file

Il sort Il comando visualizza solo il contenuto di un file dopo averli organizzati, ma non cambia il file. Tuttavia, il -o l'opzione ti consente di salvare il sort output del comando in un file.

Ad esempio, il comando seguente ordina i dati nel default.txt e salva l'output nel sorted.txt file:

sort -o sorted.txt default.txt

L'esecuzione di cat restituisce il contenuto del nuovo file.

Un altro modo per salvare il sort l'output del comando serve a reindirizzare l'output in un file:

sort default.txt > sorted.txt

Esempio 2:verifica dell'ordinamento nel file

Specificare il -c opzione per verificare se il contenuto di un file è già stato ordinato. Se i contenuti sono già ordinati, non viene generato alcun output da sort comando.

Tuttavia, quando sort trova una riga non ordinata, emette un messaggio che segnala che la prima riga è fuori posto.

Ad esempio:

sort -c default.txt

Il comando emette un messaggio che riporta il numero e il contenuto della prima riga non ordinata.

Esempio 3:Ordina più file

Esistono due modi per ordinare più file:

1. Elenca i nomi dei file come argomenti separati da uno spazio.

Ordina più file contemporaneamente specificando i rispettivi nomi di file come argomenti, separati da spazi bianchi. I contenuti dei file vengono uniti, ordinati e stampati in output standard.

Ad esempio:

sort default1.txt default2.txt

Il comando concatena, ordina e stampa il contenuto di entrambi i file.

2. Pipe il find output del comando su sort .

Un altro modo per ordinare più file contemporaneamente consiste nel reindirizzare l'output del comando trova a sort e usa il --files0-from= opzione nel sort comando.

Specificare il -print0 opzione in find per terminare il nome del file con NUL carattere e assicurarsi che il programma legga correttamente l'elenco dei file.

Ad esempio:

find -name "default?.txt" -print0 | sort --files0-from=-

L'esempio sopra concatena e ordina default1.txt e default2.txt file.

Esempio 4:Ordina per campi

Per impostazione predefinita, sort confronta il contenuto dell'intera riga e decide come ordinarla. Per confrontare in base a un sottoinsieme di dati, specifica quali campi confrontare utilizzando il -k opzione.

Il -k opzione accetta la seguente sintassi:

-k [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .Cend ] ][ Modifier ] ]
  • FStart . L'inizio della riga.
  • CStart . La prima colonna del campo.
  • Fend . La fine della linea.
  • CEnd . L'ultima colonna del campo.

La chiave di ordinamento include tutti i caratteri che iniziano con il campo specificato da FStart variabile e la colonna specificata da CStart variabile. La chiave termina con il campo specificato da FEnd e la colonna specificata da CEnd .

Non specificando Fend assume l'ultimo carattere della riga come fine. Senza specificare CEnd , l'ultimo carattere nel FEnd campo è presupposto.

Se c'è spazio tra i campi, sort li considera come campi separati.

Ad esempio, le righe nel file seguente contengono tre campi:

Ordina i dati in base al secondo campo eseguendo:

sort -k 2,2 school.txt

Il comando ordina i dati in base al secondo campo e ignora il primo campo.

Esempio 5:Ordina in ordine inverso

Usa il -r opzione per ordinare i dati in ordine inverso, ovvero in ordine alfabetico inverso o numeri dal più alto al più basso.

Ad esempio, il seguente file viene ordinato con le regole di ordinamento predefinite:

sort default.txt

Specificando il -r opzione inverte l'ordine di ordinamento:

sort -r default.txt

Esempio 6:rimozione di voci duplicate

Il -u l'opzione consente sort per rimuovere le voci duplicate da un file. Ad esempio, il seguente file ha diverse voci duplicate:

Specificando il -u l'opzione ordina i dati e rimuove le righe duplicate:

sort -u test.txt

Esempio 7:Ordina per mesi

Specificare il -M opzione per organizzare i dati in base ai mesi elencati in un file.

Per dimostrare l'ordinamento per mesi, crea un file popolato dall'output del comando ls:

ls -l > month-sorting.txt

Ordina i dati da ls -l output per mesi eseguendo il comando seguente:

sort -Mk6 month-sorting.txt

Il comando ordina il contenuto del file in base al sesto campo contenente il mese di creazione del file .

Esempio 8:ordinamento casuale dei dati

Usa il -R opzione per disporre i dati in modo casuale senza applicare alcun criterio di ordinamento.

Ad esempio, il seguente file contiene diverse righe ordinate numericamente:

Mescola l'ordine delle righe con il seguente comando:

sort -R ordered.txt

L'output mostra che i dati sono ora ordinati casualmente.

Esempio 9:specifica un delimitatore

sort separa i campi in una riga utilizzando spazi bianchi (spazi o tabulazioni) come delimitatori di campo. Specificare il -t opzione per modificare il delimitatore di campo con un carattere diverso.

Ad esempio, il seguente file contiene più campi, inclusi il nome di una persona, il titolo di lavoro e il luogo di residenza:

L'ordinamento del file per luogo di residenza senza modificare il delimitatore non funziona perché alcune città hanno uno spazio nel mezzo del loro nome. Lo spazio rende sort interpreta il nome della città come due campi invece di uno.

Cambia il delimitatore con una virgola (, ) per ordinare correttamente il contenuto del file:

sort -t, -k4 school.txt

La modifica del delimitatore produce l'output desiderato.

Esempio 10:Ordina un output di flusso

Un altro modo per fornire input al sort il comando consiste nell'usare la pipe (| ) operatore. Convogliamento in sort gli consente di organizzare l'output di un altro comando e, facoltativamente, di salvare i risultati in un file.

L'esempio seguente mostra come reindirizzare ls output del comando in sort e ordina i contenuti in base alla dimensione del file:

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

Il -nk5 le opzioni specificano l'ordinamento numerico nel quinto campo .


Linux
  1. Comando wc 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 CD Linux con esempi

Comando Linux watch con esempi

Attendi comando in Linux con esempi

Comando di esportazione Linux con esempi

Ordina il comando in Linux con esempi

Comando IP Linux con esempi