Skip to main content

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

The Great Gildersleeve: Leroy's Toothache / New Man in Water Dept. / Adeline's Hat Shop (April 2025)

The Great Gildersleeve: Leroy's Toothache / New Man in Water Dept. / Adeline's Hat Shop (April 2025)
Anonim

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.

HoldMål scoretMål modPoints
Celtic933186
Aberdeen624871
hjerter594065
St Johnstone585556
Motherwell476350
Ross County556148
Inverness544852
Dundee535748
Partick415046
Hamilton426343
Kilmarnock416436
Dundee United457028

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ånedData brugt
januar4G
februar3000K
marts6000K
April100M
Kan5000m
juni200K
juli4000K
august2500K
september3000K
oktober1000K
november3G
december2G

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.