Cum să sortați date într-un fișier utilizând Linux

Introducere

În acest ghid, vă voi arăta cum să sortați datele în fișiere delimitate și de la ieșirea altor comenzi.

Nu veți fi surprins să aflați că comanda utilizată pentru a efectua această sarcină se numește "sort". Toate comenzile majore ale comenzii de sortare vor fi furnizate în acest articol.

Datele de probă

Datele dintr-un fișier pot fi sortate atâta timp cât sunt delimitate într-un fel.

De exemplu, să luăm ultimul tabel de ligă din Premier League din Scoția anul trecut și să stocăm datele într-un fișier numit "spl".

Puteți crea un fișier de date după cum urmează cu un singur club și datele pentru acest club separate prin virgule pe fiecare rând.

Echipă Scopurile scorurilor Obiective împotriva puncte
celtic 93 31 86
Aberdeen 62 48 71
inimă 59 40 65
St Johnstone 58 55 56
Motherwell 47 63 50
Ross County 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

Cum se sortează datele în fișiere

Din acea masă, puteți vedea că Celtic a câștigat liga și Dundee United a venit ultima. Dacă sunteți un fan al Dundee United, ați putea dori să vă simțiți mai bine și puteți face acest lucru prin sortarea golurilor marcate.

Pentru aceasta, rulați următoarea comandă:

sort -k2 -t, spl

De data aceasta ordinul ar fi următorul:

Motivul pentru care rezultatele sunt în această ordine este că coloana 2 este coloana golurilor înscrise, iar sortarea trece de la cel mai mic la cel mai înalt.

Comutatorul -k vă permite să alegeți coloana pentru sortare și comutatorul -t vă permite să alegeți delimitatorul.

Pentru a se face fericiți, fanii Dundee United pot sorta după coloana 4 folosind următoarea comandă:

sort -k4 -t, spl

Acum Dundee United este de top și Celtic sunt în partea de jos.

Desigur, acest lucru ar face atât fanii Celtic, cât și Dundee foarte nefericiți într-adevăr. Pentru a pune lucrurile la dispoziție, puteți sorta în ordine inversă utilizând următorul switch:

sort -k4 -t, -r spl

Un comutator destul de bizar vă permite să sortați în mod aleatoriu, care într-adevăr amestecă rândurile de date.

Puteți face acest lucru folosind următoarea comandă:

sort -k4 -t, -R spl

Acest lucru ar putea provoca probleme reale dacă ați amestecat comutatorul -r și -R.

Comanda de sortare poate sorta, de asemenea, datele în ordinea lunară. Pentru a arăta uita-te la următorul tabel:

Lună Datele folosite
ianuarie 4G
februarie 3000K
Martie 6000K
Aprilie 100M
Mai 5000m
iunie 200K
iulie 4000K
August 2500K
Septembrie 3000K
octombrie 1000K
noiembrie 3G
decembrie 2G

Tabelul de mai sus reprezintă luna din anul și cantitatea de date folosită pe un dispozitiv mobil.

Puteți sorta datele în ordine alfabetică utilizând următoarea comandă:

sort -k1 -t, lista utilizată de date

De asemenea, puteți sorta după lună utilizând următoarea comandă:

sort -k1 -t, -M dateusedlist

Acum, evident, tabelul de mai sus le arată deja în ordine de luni, dar dacă lista a fost populată aleatoriu, atunci ar fi o modalitate simplă de a le sorta.

Privind la cea de-a doua coloană, puteți vedea că toate valorile sunt într-un format care poate fi citit de om și care nu pare să fie ușor de sortare, dar comanda de sortare poate sorta coloana de date utilizată folosind următoarea comandă:

sort -k2 -t, -h dateusedlist

Cum să sortați datele primite din alte comenzi

În timp ce sortarea datelor în fișiere este utilă, comanda de sortare poate fi de asemenea folosită pentru a sorta ieșirea din alte comenzi:

De exemplu, uitați-vă la comanda ls :

Este-llt

Comanda de mai sus returnează fiecare fișier ca un rând de date cu următoarele câmpuri afișate în coloane:

Puteți sorta lista după dimensiunea fișierului executând următoarea comandă:

ls -lt | sort-k5

Pentru a obține rezultatele în ordine inversă, veți folosi următoarea comandă:

ls -lt | sort -k5 -r

Comanda de sortare poate fi folosită și împreună cu comanda ps care afișează procesele care rulează pe sistemul dvs.

De exemplu, executați următoarea comandă ps pe sistemul dvs.:

ps-eF

Comanda de mai sus returnează o mulțime de informații despre procesele care rulează în prezent pe sistemul dvs.

Una dintre coloanele respective este dimensiunea și este posibil să doriți să vedeți care procese sunt cele mai mari.

Pentru a sorta aceste date după mărime, utilizați următoarea comandă:

ps -eF | sort-k5

rezumat

Nu este prea mult pentru comanda de sortare, dar poate deveni utilă foarte rapid atunci când sortarea de ieșire din alte comenzi într-o ordine semnificativă, mai ales atunci când comanda nu are propriile switch-uri de sortare disponibile.

Pentru mai multe informații citiți paginile manuale pentru comanda de sortare.