introduzione
In questa guida, ti mostrerò come ordinare i dati in file delimitati e dall'output di altri comandi.
Non sarai sorpreso di apprendere che il comando che usi per eseguire questa operazione è chiamato "sort". Tutti gli interruttori principali del comando di ordinamento verranno forniti in questo articolo.
Dati di esempio
I dati in un file possono essere ordinati fino a quando sono delimitati in qualche modo.
Ad esempio, prendiamo la classifica finale della Premier League scozzese l'anno scorso e memorizziamo i dati in un file chiamato "spl".
È possibile creare un file di dati come segue con un club e i dati per quel club separati da virgole su ogni riga.
Squadra | Gol segnati | Obiettivi Contro | Punti |
---|---|---|---|
celtico | 93 | 31 | 86 |
Aberdeen | 62 | 48 | 71 |
cuori | 59 | 40 | 65 |
St Johnstone | 58 | 55 | 56 |
Motherwell | 47 | 63 | 50 |
Contea di Ross | 55 | 61 | 48 |
Inverness | 54 | 48 | 52 |
Dundee | 53 | 57 | 48 |
Partick | 41 | 50 | 46 |
Hamilton | 42 | 63 | 43 |
Kilmarnock | 41 | 64 | 36 |
Dundee United | 45 | 70 | 28 |
Come ordinare i dati nei file
Da quel tavolo, puoi vedere che il Celtic ha vinto il campionato e Dundee United è arrivato l'ultimo. Se sei un tifoso del Dundee United potresti voler farti sentire meglio e potresti farlo selezionando i goal segnati.
Per farlo, esegui il seguente comando:
ordina -k2 -t, spl
Questa volta l'ordine sarebbe il seguente:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Contea di Ross
- St Johnstone
- cuori
- Aberdeen
- celtico
Il motivo per cui i risultati sono in questo ordine è che la colonna 2 è la colonna dei goal segnati e l'ordinamento va dal più basso al più alto.
L'opzione -k ti consente di scegliere la colonna da ordinare e l'opzione -t ti consente di scegliere il delimitatore.
Per rendersi davvero felici i fan di Dundee United possono ordinare per colonna 4 usando il seguente comando:
ordina -k4 -t, spl
Ora Dundee United è in testa e il Celtic è in fondo.
Ovviamente, ciò renderebbe davvero infelici sia i fan di Celtic che quelli di Dundee. Per sistemare le cose, puoi ordinare in ordine inverso usando il seguente comando:
ordina -k4 -t, -r spl
Un interruttore piuttosto bizzarro consente di ordinare casualmente che in realtà si limita a mescolare le righe di dati.
Puoi farlo usando il seguente comando:
ordina -k4 -t, -R spl
Ciò potrebbe causare problemi reali se si mischiano i parametri -r e -R.
Il comando sort può anche ordinare le date in ordine di mese. Per dimostrare guarda la seguente tabella:
Mese | Dati utilizzati |
---|---|
gennaio | 4G |
febbraio | 3000K |
marzo | 6000K |
aprile | 100M |
potrebbe | 5000M |
giugno | 200K |
luglio | 4000K |
agosto | 2500K |
settembre | 3000K |
ottobre | 1000K |
novembre | 3G |
dicembre | 2G |
La tabella sopra rappresenta il mese dell'anno e la quantità di dati utilizzati su un dispositivo mobile.
È possibile ordinare le date in ordine alfabetico utilizzando il seguente comando:
ordina -k1 -t, datausedlist
Puoi anche ordinare per mese usando il seguente comando:
ordina -k1 -t, -M datausedlist
Ora ovviamente la tabella sopra li mostra già in ordine mensile, ma se la lista fosse popolata a caso, questo sarebbe un modo semplice di ordinarli.
Guardando la seconda colonna puoi vedere che tutti i valori sono in un formato leggibile dall'uomo che non sembra facile da ordinare ma il comando sort può ordinare la colonna dei dati usati usando il seguente comando:
ordina -k2 -t, -h datausedlist
Come ordinare i dati passati da altri comandi
Sebbene l'ordinamento dei dati nei file sia utile, il comando sort può anche essere utilizzato per ordinare l'output da altri comandi:
Per esempio guarda il comando ls:
ls -lt
Il comando precedente restituisce ogni file come una riga di dati con i seguenti campi visualizzati in colonne:
- permessi
- numero di nodi
- nome utente
- nome del gruppo
- taglia
- ultima data di accesso
- nome del file
È possibile ordinare l'elenco in base alla dimensione del file eseguendo il seguente comando:
ls -lt | ordina -k5
Per ottenere i risultati in ordine inverso, utilizzare il seguente comando:
ls -lt | ordina -k5 -r
Il comando sort può anche essere utilizzato insieme al comando ps che elenca i processi in esecuzione sul tuo sistema.
Ad esempio, esegui il seguente comando ps sul tuo sistema:
ps -eF
Il comando sopra riportato restituisce molte informazioni sui processi attualmente in esecuzione sul tuo sistema.
Una di queste colonne è la dimensione e potresti voler vedere quali processi sono più grandi.
Per ordinare questi dati in base alle dimensioni, utilizzare il seguente comando:
ps -eF | ordina -k5
Sommario
Non c'è molto per il comando sort, ma può essere utile molto rapidamente quando si ordina l'output da altri comandi in un ordine significativo, specialmente quando il comando non ha i propri parametri di ordinamento disponibili.
Per ulteriori informazioni leggere le pagine di manuale per il comando di ordinamento.