Come ordinare i file di testo in Linux usando il comando sort

Come ordinare i file di testo in Linux usando il comando sort

Linux fornisce diverse utilità che è possibile utilizzare per elaborare file di testo. Sia che tu voglia rimuovere i dati duplicati o ordinare il contenuto all'interno di un file, gli strumenti da riga di comando di Linux hanno tutto ciò di cui hai bisogno.





Questo articolo dimostrerà il comando sort e come puoi usarlo per ordinare il contenuto all'interno di un file di testo e organizzarlo di conseguenza.





Che cos'è il comando di ordinamento?

Come accennato in precedenza, il comando sort aiuta un utente a organizzare il contenuto di un file di testo in un ordine particolare. Sono disponibili diverse opzioni che ti consentono di ordinare il file secondo i tuoi desideri. È un programma Linux standard che può ordinare un file di testo in ordine alfabetico, numerico, per colonna e altro, in ordine normale o inverso.





Altre funzionalità del comando includono l'ignoranza dei caratteri durante l'ordinamento, l'ordinamento di un file per mese, l'ignoranza degli spazi vuoti in un file e l'ordinamento casuale. Usando l'ordinamento, puoi anche controllare se un file è già ordinato o meno.

Come usare l'ordinamento in Linux

Sebbene sort contenga diversi metodi e flag che puoi usare, rimane facile da imparare.



Sintassi di base

La sintassi di base dell'uso di sort è:

sort filename

...dove nome del file è il percorso assoluto o relativo del file di testo che si desidera ordinare.





Per impostazione predefinita, sort organizzerà il contenuto secondo i seguenti criteri:

  1. Le righe che iniziano con caratteri numerici hanno la priorità più alta.
  2. Il comando ordinerà le righe in ordine alfabetico, dopo aver ordinato le righe che iniziano con i numeri.
  3. Le righe che iniziano con caratteri minuscoli precedono le righe che iniziano con lo stesso carattere in maiuscolo.

Considera un file di testo chiamato file di testo.txt contenente le seguenti informazioni:





Per ordinare il file utilizzando la configurazione predefinita:

sort textfile.txt

Produzione:

Crea un nuovo file di output

Il comando sort non modifica il contenuto del file. Invia semplicemente il contenuto ordinato allo standard output. Tuttavia, questo non significa che l'ordinamento non possa creare un nuovo file. Puoi usare il -o flag per specificare il nome del file ordinato e sort creerà automaticamente il file per te e aggiungerà il contenuto.

come inviare un messaggio a qualcuno su youtube
sort -o sortedfile filename

...dove file ordinato è il nome del file di output e nome del file è il file originale che deve essere ordinato.

Ordinare file di testo.txt e creare un nuovo file di output per il contenuto:

sort -o sorted.txt textfile.txt

Produzione:

Ordina più file

Per ordinare più di un file contemporaneamente, passa semplicemente i nomi dei file separati dal simbolo Spazio carattere.

sort textfile.txt textfile2.txt

Produzione:

Nota che sort unirà l'output dei file e li visualizzerà insieme nel terminale.

Inverti ordinamento di un file

Se vuoi invertire la disposizione del contenuto, usa il -R flag con il comando predefinito. Il -R nel seguente comando sta per Inversione .

sort -r textfile.txt

Produzione:

Ordina un file numericamente

Per ordinare un file contenente dati numerici, utilizzare il -n bandiera con il comando. Per impostazione predefinita, l'ordinamento dispone i dati in ordine crescente.

sort -n numbers.txt

Produzione:

Se vuoi ordinare in ordine decrescente, inverti la disposizione usando il -R opzione insieme al -n bandiera nel comando.

sort -rn numbers.txt

Produzione:

Ignora maiuscole/minuscole durante l'ordinamento

Per impostazione predefinita, l'ordinamento tiene conto delle maiuscole e minuscole del contenuto. Le righe che iniziano con caratteri minuscoli precedono le righe che iniziano con la versione maiuscola dello stesso carattere. Ad esempio, 'è un ragazzo' precederà 'È un ragazzo'.

Se vuoi che sort ignori il carattere maiuscolo, specifica il -F o il --ignora-caso bandiera come segue:

sort -f textfile.txt
sort --ignore-case textfile.txt

Produzione:

Ordina un file in base al mese

Usando il -M flag, è possibile modificare l'ordine del contenuto di un file in base ai nomi dei mesi.

sort -M textfile2.txt

Produzione:

Ignora gli spazi vuoti iniziali

A volte, il file che vuoi ordinare potrebbe contenere spazi o tabulazioni. Per ignorare questi caratteri vuoti, usa il -B bandiera.

sort -b fileblanks.txt

Produzione:

Ordina un file in base a una colonna

Se hai un file di testo con dati disposti in colonne separate, puoi ordinare il file in base al contenuto di una colonna. Tutto quello che devi fare è passare il numero di colonna insieme al -a bandiera.

Considera un file di testo contenente informazioni sul file con colonne diverse. Per ordinare un file denominato output.txt secondo l'ottava colonna:

come cercare gli allegati in Gmail
sort -k8 -rn output.txt

Produzione:

Ordina pipe con altri comandi

Puoi anche usare sort con altri comandi Linux per modificare la disposizione dell'output. Ad esempio, per ordinare l'output di il comando ls in base alla dimensione dei file:

ls -la | sort -k5 -rn

Produzione:

Ordina un file in modo casuale

Puoi usare il -R flag se vuoi randomizzare l'ordine delle righe in un file di testo. Considera il file file di testo.txt :

sort -R textfile.txt

Produzione:

Ordina i numeri di versione in un file

Se hai un file di testo contenente le informazioni sulla versione associate a un pacchetto, puoi ordinarne il contenuto utilizzando il pulsante -V o --version-sort bandiera.

divertenti giochi gratuiti da giocare quando sei annoiato
sort -V version.txt
sort --version-sort version.txt

Produzione:

Controlla se un file è ordinato

Il -C flag ti aiuterà a identificare i file che sono già ordinati secondo le opzioni specificate. Se il contenuto del file è ordinato correttamente, sort non visualizzerà alcun output.

Per verificare se il file file di testo.txt è ordinato:

sort -c textfile.txt

Ora ordiniamo il file e salviamo il suo output in un nuovo file chiamato sorted.txt . All'emissione del seguente comando:

sort -c sorted.txt

Produzione:

È inoltre possibile specificare vari flag per verificare la disposizione del file secondo criteri particolari. Ad esempio, per verificare se il file numeri.txt è ordinato in ordine decrescente:

sort -c -rn numbers.txt

Vedrai un output che indica che il file non è ordinato correttamente. Ordiniamo il file e controlliamo se il nuovo file supera il test.

sort -o sorted.txt -rn numbers.txt
sort -c -rn sorted.txt

Produzione:

Ordina il file e rimuovi i duplicati

Il file con cui stai lavorando potrebbe contenere dati duplicati. Anche se puoi usare il comando uniq per rimuovere tali informazioni dal file, sort può eseguire questa attività per te. Il -u o --unico la bandiera è ciò di cui hai bisogno.

Considera un file chiamato duplicato.txt :

Per ordinare il file e rimuovere i dati ripetuti:

sort -u duplicate.txt

Produzione:

Puoi vederlo quando usi il -u flag, sort visualizza solo righe distinte e le dispone secondo i criteri specificati.

Lavorare con i file di testo in Linux

Sebbene la potenza degli editor di testo della riga di comando sia ineguagliabile, puoi comunque optare per un editor grafico come gedit per modificare facilmente il contenuto di un file di testo. Inoltre, è una scelta migliore per coloro che non conoscono Linux e non possono gestire il terminale.

Il modo migliore per iniziare con la riga di comando, e Linux in generale, è esercitarsi prima con i comandi di base. Dopo aver coperto le utilità fondamentali, avanzare gradualmente verso comandi più complessi è probabilmente l'approccio migliore.

Condividere Condividere Tweet E-mail Il cheat sheet di riferimento per i comandi di Linux

Questo semplice cheat sheet ti aiuterà a familiarizzare con il terminale della riga di comando di Linux in pochissimo tempo.

Leggi Avanti
Argomenti correlati
  • Linux
  • Gestione dei file
  • Linux
  • Comandi Linux
Circa l'autore Deepesh Sharma(79 articoli pubblicati)

Deepesh è l'editor junior per Linux del MUO. Scrive guide informative su Linux, con l'obiettivo di fornire un'esperienza felice a tutti i nuovi arrivati. Non sono sicuro dei film, ma se vuoi parlare di tecnologia, è il tuo ragazzo. Nel suo tempo libero, puoi trovarlo a leggere libri, ascoltare diversi generi musicali o suonare la sua chitarra.

Altro da Deepesh Sharma

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti