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:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Ross County
- St Johnstone
- inimă
- Aberdeen
- celtic
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:
- permisiuni
- numar de noduri
- nume de utilizator
- numele Grupului
- mărimea
- ultima dată de acces
- nume de fișier
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.