Skip to main content

Så här sorterar du data i en fil med Linux

Central Nervous System: Crash Course A&P #11 (April 2025)

Central Nervous System: Crash Course A&P #11 (April 2025)
Anonim

Introduktion

I den här guiden kommer jag att visa dig hur du sorterar data i avgränsade filer och från utmatningen från andra kommandon.

Du kommer inte bli förvånad att veta att kommandot du använder för att utföra denna uppgift kallas "sortera". Alla större omkopplare av sorteringskommandot kommer att tillhandahållas i den här artikeln.

Stickprov

Data i en fil kan sorteras så länge den är avgränsad på något sätt.

Till exempel, låt oss ta den sista ligatabellen från den skotska Premier League förra året och lagra data i en fil som heter "spl".

Du kan skapa en datafil enligt följande med en klubb och uppgifterna för den klubben separeras med kommatecken på varje rad.

TeamMål ScoredMål motPoints
keltiska933186
Aberdeen624871
Hjärtan594065
St Johnstone585556
Motherwell476350
Ross County556148
Inverness544852
Dundee535748
Partick415046
Hamilton426343
Kilmarnock416436
Dundee United457028

Så här sorterar du data i filer

Från det bordet kan du se att Celtic vann ligan och Dundee United kom sist. Om du är en Dundee United-fan kanske du vill få dig att må bättre och du kan göra det genom att sortera på mål som görs.

För att göra detta kör följande kommando:

sortera -k2 -t, spl

Denna gång skulle ordern vara följande:

  • Partick
  • Kilmarnock
  • Hamilton
  • Dundee United
  • Motherwell
  • Dundee
  • Inverness
  • Ross County
  • St Johnstone
  • Hjärtan
  • Aberdeen
  • keltiska

Anledningen till att resultaten är i den här ordningen är att kolumn 2 är målskolan och sorteringen går från lägst till högst.

Med -k-omkopplaren kan du välja kolumnen som ska sorteras efter och -t-omkopplaren kan du välja avgränsaren.

För att göra sig riktigt lyckliga kan Dundee United fans sortera efter kolumn 4 med följande kommando:

sort-k4 -t, spl

Nu är Dundee United topp och Celtic är längst ner.

Det skulle givetvis göra både Celtic och Dundee fans väldigt olyckliga. För att sätta saker rätt kan du sortera i omvänd ordning med följande brytare:

sortera -k4 -t, -r spl

En ganska bisarr omkopplare låter dig sortera slumpmässigt vilket verkligen bara jumbles upp raderna av data.

Du kan göra detta med följande kommando:

sortera -k4-t, -R spl

Detta kan orsaka verkliga problem om du blandade upp din -r och din -R-omkopplare.

Sorteringskommandot kan också sortera datum i månadsordning. För att demonstrera titta på följande tabell:

MånadData används
januari4G
februari3000K
Mars6000K
april100M
Maj5000m
juni200K
juli4000K
augusti2500K
september3000K
oktober1000K
november3G
december2G

Tabellen ovan representerar årets månad och mängden data som används på en mobilenhet.

Du kan sortera datum alfabetiskt med följande kommando:

sortera -k1 -t, datausedlist

Du kan också sortera efter månad med följande kommando:

sortera -k1 -t, -M datausedlist

Nu uppenbarligen visar tabellen ovan redan dem i månadsordning men om listan var slumpmässigt befolkade så skulle det vara ett enkelt sätt att sortera dem.

Om du tittar på den andra kolumnen kan du se att alla värdena är i ett läsbart format som inte ser ut som om det skulle vara lätt att sortera men sorteringskommandot kan sortera den använda kolumnen med följande kommando:

sortera -k2 -t, -h datausedlist

Så här sorterar du data som skickas in från andra kommandon

Medan sortering av data i filer är användbart kan sorteringskommandot användas för att sortera utmatningen från andra kommandon:

Titta till exempel på kommandot ls:

ls-lt

Ovanstående kommando returnerar varje fil som en rad data med följande fält som visas i kolumner:

  • behörigheter
  • nodtal
  • Användarnamn
  • Grupp namn
  • storlek
  • sista tillträdesdatumet
  • filnamn

Du kan sortera listan efter filstorlek genom att köra följande kommando:

ls -lt | sortera -k5

För att få resultaten i omvänd ordning skulle du använda följande kommando:

ls -lt | sortera -k5 -r

Sorteringskommandot kan också användas tillsammans med PS-kommandot som listar processer som körs på ditt system.

Till exempel kör följande ps-kommando på ditt system:

ps -eF

Ovanstående kommando returnerar mycket information om de processer som för närvarande körs på ditt system.

En av dessa kolumner är storleken och du kanske vill se vilka processer som är störst.

För att sortera dessa data efter storlek skulle du använda följande kommando:

ps -eF | sortera -k5

Sammanfattning

Det finns inte mycket att sortera kommandot men det kan bli användbart väldigt snabbt när du sorterar utmatningen från andra kommandon till en meningsfull ordning, speciellt när kommandot inte har egna sorteringsväxlar tillgängliga.

För mer information läs de manuella sidorna för sorteringskommandot.