Sådan sorteres data i en fil ved hjælp af Linux

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:

Å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:

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.