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.
Team | Mål Scored | Mål mot | Points |
---|---|---|---|
keltiska | 93 | 31 | 86 |
Aberdeen | 62 | 48 | 71 |
Hjärtan | 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å 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ånad | Data används |
---|---|
januari | 4G |
februari | 3000K |
Mars | 6000K |
april | 100M |
Maj | 5000m |
juni | 200K |
juli | 4000K |
augusti | 2500K |
september | 3000K |
oktober | 1000K |
november | 3G |
december | 2G |
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.