Introduktion
I denne vejledning vil jeg vise dig, hvordan du sorterer data i afgrænsede filer og fra output fra andre kommandoer.
Du bliver ikke overrasket over at lære, at den kommando, du bruger til at udføre denne opgave, hedder "sort". Alle de store omskiftere af sorteringskommandoen findes i denne artikel.
Prøvedata
Dataene i en fil kan sorteres så længe den er afgrænset på en eller anden måde.
Lad os f.eks. Tage den sidste ligatabell fra den skotske Premier League sidste år og gemme dataene i en fil kaldet "spl".
Du kan oprette en datafil som følger med en klub og dataene for den klub adskilt af kommaer på hver række.
Hold | Mål scoret | Mål mod | Points |
---|---|---|---|
Celtic | 93 | 31 | 86 |
Aberdeen | 62 | 48 | 71 |
hjerter | 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 |
Sådan sorteres data i filer
Fra den tabel kan du se, at Celtic vandt ligaen, og Dundee United kom sidst. Hvis du er en Dundee United fan, vil du måske gerne føle dig bedre, og du kan gøre det ved at sortere på mål, der er scoret.
For at gøre dette køre følgende kommando:
sort-k2 -t, spl
Denne gang vil ordren være som følger:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Ross County
- St Johnstone
- hjerter
- Aberdeen
- Celtic
Årsagen til resultaterne er i denne rækkefølge er, at kolonne 2 er målene scorede søjle og sorteringen går fra laveste til højeste.
-K-knappen giver dig mulighed for at vælge kolonnen, der skal sorteres efter, og -t-knappen giver dig mulighed for at vælge afgrænsningen.
For at gøre sig rigtig glad kan Dundee United fans sortere ved kolonne 4 ved at bruge følgende kommando:
sort-k4-t, spl
Nu er Dundee United top og Celtic er i bunden.
Dette ville selvfølgelig gøre både Celtic og Dundee fans meget ulykkelige faktisk. For at sætte ting i orden kan du sortere i omvendt rækkefølge ved hjælp af følgende switch:
sort -k4 -t, -r spl
En ret bizar skifte giver dig mulighed for at sortere tilfældigt, som virkelig bare jumbles op i rækkerne af data.
Du kan gøre dette ved at bruge følgende kommando:
sort-k4-t, -R spl
Dette kan forårsage reelle problemer, hvis du blandede din -r og din -R-switch.
Sorteringskommandoen kan også sortere datoer i månedsrækkefølge. At demonstrere se på følgende tabel:
Måned | Data brugt |
---|---|
januar | 4G |
februar | 3000K |
marts | 6000K |
April | 100M |
Kan | 5000m |
juni | 200K |
juli | 4000K |
august | 2500K |
september | 3000K |
oktober | 1000K |
november | 3G |
december | 2G |
Ovenstående tabel repræsenterer årets måned og mængden af data, der anvendes på en mobilenhed.
Du kan sortere datoerne alfabetisk ved hjælp af følgende kommando:
sort -k1 -t, databrugsliste
Du kan også sortere efter måned ved at bruge følgende kommando:
sort -k1 -t, -M datausedlist
Nu er det klart, at tabellen ovenfor allerede viser dem i måneden, men hvis listen blev tilfældigt befolket, ville det være en enkel måde at sortere dem på.
Når man ser på den anden kolonne, kan man se, at alle værdierne er i et menneskeligt læseligt format, der ikke ligner det ville være nemt at sortere, men sorteringskommandoen kan sortere den anvendte kolonne ved hjælp af følgende kommando:
sorter -k2 -t, -h databrugsliste
Sådan sorteres data, der passeres ind fra andre kommandoer
Mens sortering af data i filer er nyttig, kan sorteringskommandoen også bruges til at sortere output fra andre kommandoer:
Se for eksempel på kommandoen ls:
ls-lt
Ovennævnte kommando returnerer hver fil som en række data med følgende felter vist i kolonner:
- tilladelser
- node tæller
- brugernavn
- gruppe navn
- størrelse
- sidste adgangsdato
- filnavn
Du kan sortere listen efter filstørrelse ved at køre følgende kommando:
ls -lt | sorter -k5
For at få resultaterne i omvendt rækkefølge vil du bruge følgende kommando:
ls -lt | sorter -k5 -r
Sorteringskommandoen kan også bruges sammen med PS-kommandoen, som viser processer, der kører på dit system.
For eksempel kør følgende ps kommando på dit system:
ps -eF
Ovenstående kommando giver mange oplysninger om de processer, der aktuelt kører på dit system.
En af disse kolonner er størrelsen, og du vil måske se, hvilke processer der er størst.
For at sortere disse data efter størrelse skal du bruge følgende kommando:
ps -eF | sorter -k5
Resumé
Der er ikke meget til sorteringskommandoen, men det kan blive nyttigt meget hurtigt, når du sorterer output fra andre kommandoer til en meningsfuld rækkefølge, især når kommandoen ikke har egne sorteringsskiftere til rådighed.
For mere information læs de manuelle sider for sorteringskommandoen.