Úvod
V této příručce vám ukážeme, jak uspořádat data v oddělených souborech a na výstupu z dalších příkazů.
Nebudete překvapeni, když zjistíte, že příkaz, který používáte k provedení tohoto úkolu, se nazývá "řazení". V tomto článku budou uvedeny všechny hlavní přepínače příkazu řazení.
Vzorek dat
Data v souboru lze třídit tak dlouho, dokud je nějakým způsobem vymezen.
Například, vezměme minulý rok poslední ligovou tabulku ze Scottish Premier League a uložíme data do souboru s názvem "spl".
V jednom klubu můžete vytvořit datový soubor následujícím způsobem a údaje pro tento klub oddělené čárkami na každém řádku.
tým | Cíle vyhodnoceny | Cíl proti | Body |
---|---|---|---|
keltský | 93 | 31 | 86 |
Aberdeen | 62 | 48 | 71 |
Srdce | 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 |
Jak třídit data v souborech
Z tohoto stolu vidíte, že Celtic vyhrál ligu a Dundee United přišel poslední. Pokud jste fanoušek Dundee United, možná budete chtít, abyste se cítili lépe a mohli byste to udělat tím, že si třídíte na skóre.
Chcete-li to provést, spusťte následující příkaz:
třídit -k2 -t, spl
Tentokrát bude objednávka následující:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Ross County
- St Johnstone
- Srdce
- Aberdeen
- keltský
Důvodem, proč jsou výsledky v tomto pořadí, je to, že ve sloupci 2 jsou cíle zaznamenané ve sloupci a třídění se pohybuje od nejnižšího po nejvyšší.
Přepínač -k umožňuje vybrat sloupec, který chcete třídit a přepínač -t umožňuje vybrat oddělovač.
Aby byli fanoušci Dundee United opravdu šťastní, mohou seřadit podle sloupce 4 pomocí následujícího příkazu:
třída -k4 -t, spl
Nyní je Dundee United špičková a keltské jsou na konci.
Samozřejmě, že by to oba byli Keltové a Dundee fanoušci velmi nešťastný opravdu. Chcete-li věci správně, můžete seřadit v obráceném pořadí pomocí následujícího přepínače:
třída -k4 -t, -r spl
Poměrně bizarní přepínač vám umožní náhodně třídit, což opravdu prostě míchá řady dat.
Můžete to provést pomocí následujícího příkazu:
třída -k4 -t, -R spl
To by mohlo způsobit skutečné problémy, pokud zmícháte přepínač -r a -R.
Příkaz řazení může také třídit data do měsíčního pořadí. Chcete-li ukázat, podívejte se na následující tabulku:
Měsíc | Použité údaje |
---|---|
leden | 4G |
Únor | 3000K |
březen | 6000K |
duben | 100M |
Smět | 5000M |
červen | 200K |
červenec | 4000K |
srpen | 2500K |
září | 3000K |
říjen | 1000K |
listopad | 3G |
prosinec | 2G |
Výše uvedená tabulka představuje měsíc v roce a množství dat použitých v mobilním zařízení.
Data můžete řadit abecedně pomocí následujícího příkazu:
sort -k1 -t, datausedlistlist
Můžete také třídit podle měsíce pomocí následujícího příkazu:
třídit -k1 -t, -M datausedlistlist
Nyní je zřejmé, že výše uvedená tabulka zobrazuje již v měsíčním pořadí, ale pokud byl seznam náhodně osídlen, pak by to byl jednoduchý způsob jejich řazení.
Při pohledu na druhý sloupec můžete vidět, že všechny hodnoty jsou ve formátu lidského čtení, který nevypadá, že by bylo snadné seřadit, ale příkaz řazení může třídit použitý sloupec pomocí následujícího příkazu:
sort -k2 -t, -h datausedlistlist
Jak shromáždit data z jiných příkazů
Zatímco třídění dat v souborech je užitečné, příkaz řazení může také být použit pro řazení výstupů z jiných příkazů:
Například se podívejte na příkaz ls:
ls -lt
Výše uvedený příkaz vrátí každý soubor jako řádek dat s následujícími poli zobrazenými ve sloupcích:
- oprávnění
- počet uzlů
- uživatelské jméno
- skupinové jméno
- velikost
- poslední datum přístupu
- název souboru
Seznam můžete třídit podle velikosti souboru spuštěním následujícího příkazu:
ls -lt | sort -k5
Chcete-li výsledky získat v opačném pořadí, použijte následující příkaz:
ls -lt | třídit -k5 -r
Příkaz řazení lze také použít ve spojení s příkazem ps, který uvádí procesy spuštěné ve vašem systému.
Například spusťte následující příkaz ps ve vašem systému:
ps -eF
Výše uvedený příkaz vrátí spoustu informací o procesech, které běží ve vašem systému.
Jeden z těchto sloupců je velikost a možná budete chtít vidět, které procesy jsou největší.
Chcete-li tyto údaje třídit podle velikosti, použijte následující příkaz:
ps -eF | sort -k5
souhrn
Příkaz třídění není moc, ale může se velmi rychle hodit při řazení výstupů z jiných příkazů do smysluplného pořadí, zvláště pokud příkaz nemá vlastní přepínače třídění.
Další informace naleznete v příručkách pro příkaz řazení.