Introduksjon
I denne veiledningen vil jeg vise deg hvordan du sorterer data i avgrensede filer og fra utdata fra andre kommandoer.
Du vil ikke bli overrasket over at kommandoen du bruker til å utføre denne oppgaven, kalles "sorter". Alle de store bryterne av sorteringskommandoen vil bli gitt i denne artikkelen.
Eksempeldata
Dataene i en fil kan sorteres så lenge den er avgrenset på en eller annen måte.
For eksempel, la oss ta den siste ligatabellen fra den skotske Premier League i fjor og lagre dataene i en fil kalt "spl".
Du kan opprette en datafil som følger med en klubb og dataene for den klubben skilt av kommaer på hver rad.
Team | Mål scoret | Mål mot | Poeng |
---|---|---|---|
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 |
Slik sorterer du data i filer
Fra det bordet kan du se at Celtic vant ligaen og Dundee United kom sist. Hvis du er en Dundee United fan, vil du kanskje få det til å føle deg bedre, og du kan gjøre dette ved å sortere på mål som er scoret.
For å gjøre dette, kjør følgende kommando:
sorter-k2-t, spl
Denne gangen vil ordren være som følger:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Ross County
- St Johnstone
- hjerter
- Aberdeen
- Celtic
Grunnen til at resultatene er i denne rekkefølgen er at kolonne 2 er målene som er scoret, og sorten går fra lavest til høyest.
-K-bryteren lar deg velge kolonnen for å sortere etter, og -t-bryteren lar deg velge avgrenseren.
For å gjøre seg veldig glad kan Dundee United-fansen sortere etter kolonne 4 ved hjelp av følgende kommando:
sort-k4-t, spl
Nå er Dundee United topp og Celtic er på bunnen.
Selvfølgelig, dette ville gjøre både Celtic og Dundee fans veldig ulykkelige faktisk. For å sette ting riktig kan du sortere i omvendt rekkefølge ved å bruke følgende bryter:
sorter -k4 -t, -r spl
En ganske bisarre bryter lar deg sortere tilfeldig, som egentlig bare jumbles opp rader med data.
Du kan gjøre dette ved å bruke følgende kommando:
sorter -k4-t, -R spl
Dette kan forårsake reelle problemer hvis du blandet opp -r og din -R-bryteren.
Sorteringskommandoen kan også sortere datoer i månedsordre. For å demonstrere se på følgende tabell:
Måned | Data brukt |
---|---|
januar | 4G |
februar | 3000K |
mars | 6000K |
april | 100M |
Kan | 5000m |
juni | 200K |
juli | 4000K |
august | 2500K |
september | 3000K |
oktober | 1000K |
november | 3G |
desember | 2G |
Tabellen ovenfor representerer årets måned og mengden data som brukes på en mobil enhet.
Du kan sortere datoene alfabetisk ved å bruke følgende kommando:
sorter -k1 -t, datausedlist
Du kan også sortere etter måned ved å bruke følgende kommando:
sorter -k1 -t, -M datausedlist
Nå viser åpenbart at tabellen ovenfor allerede viser dem i måneders rekkefølge, men hvis listen var tilfeldig befolket, ville dette være en enkel måte å sortere dem på.
Når du ser på den andre kolonnen, kan du se at alle verdiene er i et menneskelig lesbart format som ikke ser ut som om det ville være lett å sortere, men sorteringskommandoen kan sortere den brukte kolonnen ved å bruke følgende kommando:
sorter -k2 -t, -h datausedlist
Slik sorterer data som passeres inn fra andre kommandoer
Mens sortering av data i filer er nyttig, kan sorteringskommandoen også brukes til å sortere utdata fra andre kommandoer:
Se for eksempel på kommandoen ls:
ls-lt
Kommandoen ovenfor returnerer hver fil som en rekke data med følgende felt som vises i kolonner:
- tillatelser
- knutepunkt
- brukernavn
- gruppenavn
- størrelse
- siste tilgangsdato
- filnavn
Du kan sortere listen etter filstørrelse ved å kjøre følgende kommando:
ls -lt | sorter -k5
For å få resultatene i omvendt rekkefølge, vil du bruke følgende kommando:
ls -lt | sorter -k5 -r
Sorter kommandoen kan også brukes sammen med PS kommandoen som viser prosesser som kjører på systemet.
Kjør for eksempel følgende ps-kommando på systemet ditt:
ps -eF
Kommandoen ovenfor gir mye informasjon om prosessene som kjører på systemet ditt.
En av disse kolonnene er størrelsen, og du vil kanskje se hvilke prosesser som er størst.
For å sortere disse dataene etter størrelse, bruker du følgende kommando:
ps -eF | sorter -k5
Sammendrag
Det er ikke mye å sortere kommandoen, men det kan bli nyttig veldig raskt når du sorterer utdata fra andre kommandoer til en meningsfylt rekkefølge, spesielt når kommandoen ikke har egne sorteringsbrytere tilgjengelig.
For mer informasjon, les de manuelle sidene for sorteringskommandoen.