GNU/Linux >> Znalost Linux >  >> Ubuntu

Příkaz řazení v Linuxu s příklady

Příkaz sort je jedním ze základních nástrojů GNU, který se používá k řazení obsahu v určitém pořadí. Umí třídit obsah mnoha způsoby, které zahrnují abecedně, číselně, podle měsíce, v opačném pořadí atd. Zde je několik klíčových bodů, které musíte mít na paměti ohledně příkazu řazení:

  • Číslice jsou na prvním místě před písmeny
  • U každého písmena jsou nejprve řazena malá písmena.
  • Ve výchozím nastavení se jako oddělovač polí používají mezery. Lze použít i jiné oddělovače polí.

V tomto příspěvku vám ukážeme základní použití a některé běžné možnosti příkazu sort v Linuxu. Budeme testovat všechny příkazy na Ubuntu 20.04 LTS . Stejné příkazy však můžete použít na jiné distribuce Linuxu.

Syntaxe příkazu sort je následující:

$ sort [OPTION]... [FILE]...

Základní použití příkazu řazení

Použití příkazu sort bez jakýchkoli voleb příkazového řádku seřadí obsah zadaného souboru podle abecedy.

Níže je náš sample1.txt soubor, který budeme používat jako příklad.

Chcete-li seřadit obsah souboru sample1.txt soubor, příkaz by byl:

$ sort sample1.txt

Zde je výstup výše uvedeného příkazu, který ukazuje abecedně seřazený obsah.

Pokud soubor obsahuje abecedy i čísla, příkaz sort seřadí čísla před abecedami. Níže je náš ukázkový soubor, který obsahuje čísla i abecedy:

Zde je výstup výše uvedeného souboru po seřazení, kde můžete vidět, že čísla jsou seřazena před abecedou.

Možnosti příkazu řazení

Příkaz řazení poskytuje spoustu možností, které rozšiřují jeho užitečnost. Pojďme se podívat na několik možností a jak je používat.

Řadit v opačném pořadí

Chcete-li seřadit obsah souboru v opačném pořadí, použijte -r volba. Níže je například uveden obsah našeho ukázkového souboru, který chceme seřadit v obráceném abecedním pořadí.

Chcete-li seřadit obsah tohoto souboru v opačném pořadí, použijte -r možnost takto:

$ sort -r sample1.txt

Řadit v číselném pořadí

Chcete-li data seřadit číselně, použijte -n pomocí příkazu sort. Tato možnost je užitečná, pokud váš soubor obsahuje čísla a chcete je seřadit od nejnižšího po nejvyšší nebo od nejvyššího po nejnižší. Mějte na paměti, že při výchozím řazení bude 113 považováno za menší než 2.

Níže je uveden příklad výchozího řazení našeho ukázkového souboru. Mějte na paměti, že při výchozím řazení se řazení provádí na základě prvního čísla. Pokud je první číslo stejné, seřadí se na základě druhého čísla. Stejně jako v níže uvedeném příkladu je 113 menší než 13 a 2.

Chcete-li výše uvedený obsah seřadit číselně (od nejnižšího čísla po nejvyšší), použijte -n možnost takto:

$ sort -n sample2.txt

Řadit podle měsíce

Výchozí příkaz řazení seřadí obsah souboru podle abecedy. Pokud soubor obsahuje seznam názvů měsíců, můžete je seřadit po měsících pomocí -M příkaz. Níže je například ukázkový soubor obsahující názvy měsíců.

Chcete-li seřadit obsah výše uvedeného souboru podle měsíců, použijte -M možnost takto:

$ sort -M sample3.txt

Řadit na základě čísla sloupce

Ve výchozím nastavení příkaz sort začne třídit obsah na základě prvního znaku prvního sloupce.

Například níže je náš ukázkový soubor, který obsahuje dva sloupce; názvy ovoce a jejich příslušné ceny. Pokud bychom použili výchozí třídění, bylo by to provedeno na základě prvního sloupce (obsahujícího názvy ovoce).

Abychom seřadili obsah výše uvedeného souboru na základě druhého sloupce (ceny), budeme muset použít příkaz -k následovně:

$ sort -k2 -n sample1.txt

Kde -k2 říká příkazu sort, aby třídil podle druhého sloupce a -n se používá pro číselné řazení.

Výše uvedený příkaz seřadí obsah na základě jejich cen (od nižších po vyšší).

Použít jiný oddělovač polí

Ve výchozím nastavení příkaz sort používá jako oddělovač polí mezeru. Chcete-li použít jiný oddělovač polí než mezeru, použijte -t volba. Níže je náš ukázkový soubor, který chceme seřadit na základě druhého sloupce (oddělený čárkami ).

Příkaz k seřazení výše uvedeného souboru na základě druhého sloupce by byl:

$ sort -k2 -n -t “,” sample1.txt

Kde -k2 říká příkazu sort, aby seřadil podle druhého sloupce, -n se používá pro numerické řazení a -t se používá k určení oddělovače polí.

Seřadit a odebrat duplikáty

-u volba s příkazem sort také odstraní duplikáty spolu s řazením obsahu. Níže je náš ukázkový soubor, který obsahuje duplicitní hodnoty.

Chcete-li tento soubor seřadit abecedně a odstranit také duplicitní hodnoty, příkaz by byl:

$ sort -u sample1.txt

Toto je výstup seřazeného souboru s odstraněnými duplikáty.

Kontrola tříděného vstupu

Pomocí -c pomocí příkazu sort můžete zkontrolovat, zda je soubor dříve tříděn nebo ne. Pokud je soubor dříve seřazen, neuvidíte žádný výstup. Pokud však soubor není seřazen, zobrazí se řádky, které jsou mimo pořadí.

Zde je náš ukázkový soubor:

Chcete-li zkontrolovat, zda je tento soubor již seřazen nebo ne, použijte -c možnost takto:

$ sort -c sample.txt

Protože náš ukázkový soubor byl již setříděn, nezobrazí se žádný výstup.

Uložit seřazený výstup do souboru

Příkaz Sort zobrazí pouze seřazený výstup na terminálu; nezachrání to. Chcete-li seřazený výstup uložit do samostatného souboru, použijte operátor přesměrování. Chcete-li například uložit seřazený výstup souboru soubor.txt v novém souboru s názvem sortedfile.txt , použijte níže uvedený příkaz:

$ sort file.txt > sortedfile.txt

Řadit příkaz pomocí možnosti potrubí

Výstup jiných příkazů můžete třídit jejich propojením s příkazem třídění. Například chceme číselně seřadit výpis souboru/adresáře v domovském adresáři podle jejich velikosti. Můžeme tak učinit pomocí ls příkazem a pomocí potrubí jeho výstup seřadíte příkaz následovně.

$ ls -l /home/kbuzdar/ | sort -nk5

Zde je výstup výše uvedeného příkazu, kde můžete vidět soubory seřazené podle jejich velikostí.

V tomto příspěvku jsme vysvětlili základní syntaxi a použití příkazu sort v Linuxu. Vysvětlili jsme také některé běžné možnosti rozšíření jeho funkčnosti. Chcete-li zobrazit nápovědu a dozvědět se o dalších možnostech řazení, navštivte manuálovou stránku pro řazení nebo zadejte sort –help v Terminálu.


Ubuntu
  1. Linux Tee Command s příklady

  2. Třídit příkaz v Linuxu s příklady

  3. JQ Command v Linuxu s příklady

  1. Linux Source Command s příklady

  2. wc Linux Command s příklady

  3. Příkaz linuxové hlavy s příklady

  1. Linux řazení příkazů s příklady

  2. Echo Command v Linuxu (s příklady)

  3. man Command v Linuxu s příklady