GNU/Linux >> Znalost Linux >  >> Linux

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

Úvod

sort command je nástroj pro třídění obsahu souborů a tisk výsledku na standardní výstup. Změna pořadí obsahu souboru číselně nebo abecedně a uspořádání informací ve vzestupném nebo sestupném pořadí zlepšuje čitelnost.

V tomto tutoriálu se naučíte používat Linux sort a podívejte se na užitečné příklady.

Předpoklady

  • Systém se systémem Linux.
  • Přístup k terminálu.

Linux syntaxe řazení

sort příkaz má následující syntaxi:

sort [options] filename

Spuštění sort příkaz bez [options] vypíše obsah souboru a použije výchozí pravidla řazení pro aktuální národní prostředí.

Hlavní pravidla jsou:

  • Řádky začínající číslem přejděte před řádky začínající písmenem , uspořádané vzestupně objednávka (1-10).
  • Řádky začínající písmeny jsou seřazeny vzestupně abecední pořadí (A-Z).

Například následující soubor má více náhodných řádků:

Spusťte sort pro uspořádání obsahu souboru výchozím způsobem:

Výše uvedený příklad ukazuje, jak sort příkaz ve výchozím nastavení uspořádá řádky, když nejsou zadány žádné možnosti.

Možnosti řazení v Linuxu

Zadejte možnost pro změnu sort pravidla řazení příkazů. Nejpoužívanější možnosti jsou uvedeny v tabulce níže:

Formulář s krátkou možností Dlouhý formulář možnosti Popis
-b --ignore-leading-blanks Způsobuje sort ignorovat úvodní mezery.
-d --dictionary-order Způsobuje sort brát v úvahu pouze mezery a alfanumerické znaky.
-f --ignore-case Ignoruje výchozí pravidlo řazení velkých a malých písmen a před porovnáním změní všechna malá písmena na velká.
/ --files0-from=F Čte vstup ze souborů určených parametrem NUL -ukončená jména v zadaném F soubor. Pokud F je - , sort čte jména ze standardního vstupu.
-M --month-sort Třídí řádky podle měsíců (leden–prosinec).
-h --human-numeric-sort Porovnává pro člověka čitelná čísla (např. 2K 1G).
-n --numeric-sort Porovnává data podle řetězcových číselných hodnot.
-R --random-sort Třídí data podle náhodného hash klíčů, ale seskupuje identické klíče dohromady.
/ --random-source=FILE Získá náhodné bajty ze zadaného FILE .
-r --reverse Obrátí výsledky porovnání.
/ --sort=WORD Seřadit data podle zadaného WORD :obecný-číselný -g , člověk-numerický -h , měsíc -M , číselné -n , náhodné -R , verze -V .
-c --check, --check=diagnose-first Zkontroluje, zda je vstup již seřazen, ale nesetřídí jej.
/ --debug Označuje část řádku použitou k řazení.
-k --key=KEYDEF Seřaďte data pomocí zadaného KEYDEF , který udává umístění a typ klíče.
-m --merge Způsobuje sort pro sloučení již seřazených souborů.
-o --output=FILE Přesměruje výstup na FILE namísto tisku na standardní výstup.
-t --field-separator=SEP Používá zadaný SEP oddělovač namísto přechodu neprázdného na prázdný.
-z --zero-terminated Způsobí, že řazení použije NUL jako oddělovač řádku namísto znaku nového řádku.
/ --help Zobrazí soubor nápovědy s úplným seznamem možností a ukončí se.
/ --version Vypíše verzi programu a ukončí se.

Příklady řazení v Linuxu

Níže jsou uvedeny příklady použití sort příkaz k uspořádání obsahu souboru různými způsoby.

Příklad 1:Uložit výstup do souboru

sort příkaz pouze zobrazí obsah souboru po jeho uspořádání, ale nezmění soubor. Nicméně -o umožňuje uložit sort výstup příkazu do souboru.

Například následující příkaz seřadí data v default.txt a uloží výstup do sorted.txt soubor:

sort -o sorted.txt default.txt

Spuštěním cat se zobrazí obsah nového souboru.

Další způsob, jak uložit sort výstup příkazu má přesměrovat výstup do souboru:

sort default.txt > sorted.txt

Příklad 2:Kontrola řazení v souboru

Zadejte -c možnost zkontrolovat, zda byl obsah souboru již roztříděn. Pokud je obsah již setříděn, z sort nebude žádný výstup příkaz.

Když však sort najde neseřazený řádek, vydá zprávu, že první řádek není na místě.

Například:

sort -c default.txt

Výstupem příkazu je zpráva oznamující číslo a obsah prvního neseřazeného řádku.

Příklad 3:Seřadit více souborů

Existují dva způsoby, jak třídit více souborů:

1. Uveďte názvy souborů jako argumenty oddělené mezerou.

Seřaďte více souborů současně zadáním příslušných názvů souborů jako argumentů oddělených mezerami. Obsah souborů se spojí dohromady, roztřídí a vytiskne na standardní výstup.

Například:

sort default1.txt default2.txt

Příkaz zřetězí, seřadí a vytiskne obsah obou souborů.

2. Propojte find výstup příkazu do sort .

Dalším způsobem, jak třídit více souborů současně, je převést výstup příkazu find do sort a použijte --files0-from= možnost v sort příkaz.

Zadejte -print0 možnost v find pro ukončení názvu souboru NUL a ujistěte se, že program správně čte seznam souborů.

Například:

find -name "default?.txt" -print0 | sort --files0-from=-

Výše uvedený příklad zřetězí a seřadí default1.txt a default2.txt soubory.

Příklad 4:Řazení podle polí

Ve výchozím nastavení sort porovná obsah celého řádku a rozhodne, jak jej seřadit. Chcete-li porovnat podle podmnožiny dat, určete, která pole chcete porovnávat, pomocí -k možnost.

-k volba má následující syntaxi:

-k [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .Cend ] ][ Modifier ] ]
  • FStart . Začátek řádku.
  • CStart . První sloupec v poli.
  • Fend . Konec řádku.
  • CEnd . Poslední sloupec pole.

Třídicí klíč obsahuje všechny znaky začínající polem určeným FStart proměnná a sloupec určený CStart variabilní. Klíč končí polem určeným FEnd a sloupec určený CEnd .

Nezadání Fend předpokládá poslední znak řádku jako konec. Bez zadání CEnd , poslední znak v FEnd pole se předpokládá.

Pokud je mezi poli mezera, sort považuje je za samostatná pole.

Například řádky v následujícím souboru obsahují tři pole:

Seřaďte data na základě druhého pole spuštěním:

sort -k 2,2 school.txt

Příkaz seřadí data podle druhého pole a ignoruje první pole.

Příklad 5:Řazení v opačném pořadí

Použijte -r možnost seřadit data v obráceném pořadí, tj. v obráceném abecedním pořadí nebo od nejvyššího po nejnižší číslo.

Například následující soubor je řazen podle výchozích pravidel řazení:

sort default.txt

Určení -r volba obrátí pořadí řazení:

sort -r default.txt

Příklad 6:Odstraňte duplicitní položky

-u možnost umožňuje sort k odstranění duplicitních záznamů ze souboru. Například následující soubor má několik duplicitních položek:

Zadání -u volba třídí data a odstraňuje duplicitní řádky:

sort -u test.txt

Příklad 7:Řazení podle měsíců

Zadejte -M možnost uspořádat data podle měsíců uvedených v souboru.

Chcete-li předvést řazení podle měsíců, vytvořte soubor naplněný výstupem příkazu ls:

ls -l > month-sorting.txt

Seřaďte data z ls -l výstup po měsících spuštěním následujícího příkazu:

sort -Mk6 month-sorting.txt

Příkaz seřadí obsah souboru podle šestého pole obsahující měsíc vytvoření souboru .

Příklad 8:Náhodné řazení dat

Použijte -R možnost náhodného uspořádání dat bez použití jakýchkoli kritérií řazení.

Například následující soubor obsahuje několik číselně seřazených řádků:

Smíchejte pořadí řádků s následujícím příkazem:

sort -R ordered.txt

Výstup ukazuje, že data jsou nyní náhodně tříděna.

Příklad 9:Zadejte oddělovač

sort odděluje pole v řádku pomocí mezer (mezery nebo tabulátory) jako oddělovače polí. Zadejte -t možnost změnit oddělovač pole na jiný znak.

Například následující soubor obsahuje několik polí, včetně jména osoby, pracovní pozice a místa bydliště:

Řazení souboru podle místa bydliště bez změny oddělovače nefunguje protože některá města mají uprostřed názvu mezeru. Mezera umožňuje sort interpretovat název města jako dvě pole namísto jednoho.

Změňte oddělovač na čárku (, ), abyste správně seřadili obsah souboru:

sort -t, -k4 school.txt

Změnou oddělovače získáte požadovaný výstup.

Příklad 10:Seřazení výstupu streamu

Další způsob, jak zadat vstup do sort příkaz je použít roura (| ) operátor. Zařazení do sort umožňuje uspořádat výstup jiného příkazu a volitelně uložit výsledky do souboru.

Následující příklad ukazuje, jak vytvořit kanál ls výstup příkazu do sort a uspořádejte obsah podle velikosti souboru:

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

-nk5 možnosti určují numerické řazení v pátém poli .


Linux
  1. Linux Tee Command s příklady

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

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

  1. wc Linux Command s příklady

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

  3. JQ Command v Linuxu s příklady

  1. man Command v Linuxu s příklady

  2. Příkaz AWK v Linuxu s příklady

  3. Curl Command v Linuxu s příklady