Come ordinare il contenuto di un file su Linux
Per ordinare il contenuto di un file sul sistema operativo Linux utilizzo il comando sort.
Il comando sort
sort [opzioni] [nome file]
Il comando visualizza di default il contenuto del file secondo l'ordine alfabetico.
Attenzione. Il sort non cambia l'ordine dei record nel file ma soltanto l'ordine di visualizzazione. Non modifica il contenuto del file.
L'ordinamento può essere personalizzato tramite le opzioni del comando:
- -r. Visualizza i record in ordine inverso.
- -u. Rimuove i record duplicati
- -k N. Ordina i record in base al campo N. Dove k sta per key ("chiave") mentre N è la posizione della colonna del campo nel record.
Esempi pratici
Il contenuto del file prova.txt è il seguente:
Per visualizzarlo in ordine alfabetico digito sulla linea di comando sort prova.txt
Il comando visualizza i record secondo l'ordine alfabetico ( "Antonio, Bruno, Claudio, ecc. ").
Per visualizzare il contenuto in ordine inverso aggiungo l'opzione -r.
Quindi digito sort -r prova.txt
Ora l'output è in ordine alfabetico decrescente ( Paolo, Marco, Giancarlo, ecc. ).
A questo punto voglio visualizzare il contenuto del file ordinato per il secondo campo dei record ( il cognome dei giocatori ).
Per farlo digito il comando sort -k2 prova.txt
Il comando visualizza i cognomi in ordine alfabetico crescente ( Antognoni, Cabrini, Collovati, ecc. ).
E così via con le altre opzioni.
Nota. Le opzioni possono anche essere combinate tra loro. Ad esempio -ur è la combinazione di -u e -r.