Jak uspořádat data v souboru pomocí systému Linux

Ú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í:

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:

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í.