GNU/Linux >> Znalost Linux >  >> Linux

10 Užitečné příklady příkazu Sort v Linuxu

Příkaz řazení v Linuxu

Příkaz sort uspořádá řádky textu užitečným způsobem. Tento jednoduchý nástroj vám pomůže rychle třídit informace z příkazového řádku.

Syntaxe

sort [options] <filename>

Měli byste si uvědomit několik věcí:

  • Když použijete řazení bez jakýchkoliv možností, použijí se výchozí pravidla. Pomáhá pochopit výchozí pravidla, abyste se vyhnuli neočekávaným výsledkům.
  • Při použití řazení jsou vaše původní data v bezpečí. Výsledky vašeho zadání se zobrazí pouze na příkazovém řádku. Pokud si však přejete, můžete zadat výstup do samostatného souboru. Více o tom později.
  • Řazení bylo původně navrženo pro použití se znaky ASCII. Netestoval jsem to, ale je možné, že různá kódování mohou přinést neočekávané výsledky.

Výchozí pravidla v příkazu řazení

Toto jsou výchozí pravidla při použití řazení. Prvních několik příkladů objasní, jak jsou tyto priority spravovány. Poté se podíváme na specializované možnosti.

  • čísla> písmena
  • malá písmena> velká písmena

Příklady příkazu řazení

Dovolte mi ukázat vám několik příkladů příkazů řazení, které můžete použít v různých situacích.

1. Seřadit v abecedním pořadí

Výchozí příkaz řazení usnadňuje zobrazení informací v abecedním pořadí. Nejsou nutné žádné volby a dokonce i u záznamů se smíšenou velikostí písmen A–Z řazení funguje podle očekávání.

Použiji ukázkový textový soubor s názvem filename.txt a pokud si prohlédnete obsah souboru, uvidíte toto:

MX Linux
Manjaro
Mint
elementary
Ubuntu

Nyní, pokud na něm použijete příkaz řazení:

sort filename.txt

Zde je abecedně seřazený výstup:

elementary
Manjaro
Mint
MX Linux
Ubuntu

2. Seřadit podle číselné hodnoty [volba -n]

Vezměme stejný seznam, jaký jsme použili v předchozím příkladu, a seřaďte jej v číselném pořadí. Pokud by vás to zajímalo, seznam odráží nejoblíbenější linuxové distribuce (červenec 2019) podle distrowatch.com.

Upravím obsah souboru tak, aby položky byly očíslovány, ale mimo pořadí, jak je uvedeno níže.

1. MX Linux
4. elementary
2. Manjaro
5. Ubuntu
3. Mint
sort filename.txt

Po seřazení je výsledek:

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

Vypadá to dobře, že? Můžete se však na tuto metodu spolehnout, že vaše data uspořádáte přesně? Pravděpodobně ne. Podívejme se na další příklad, abychom zjistili proč.

Zde je můj nový ukázkový text:

1
5
10
3
5
2
60
23
432
21

Nyní, když použiji příkaz sort bez jakýchkoliv možností, dostanu toto:

[email protected]:~$ sort order.txt
1
10
2
21
23
3
432
5
5
60

POZNÁMKA:Čísla jsou řazena pouze podle úvodních znaků.

Když přidáte -n je nyní vyhodnocena číselná hodnota řetězce, nikoli pouze první znak. Nyní můžete vidět níže, že náš seznam je správně seřazen.

sort order.txt -n

Nyní budete mít správně seřazený výstup:

1
2
3
5
5
10
21
23
60
432

3. Řadit v obráceném pořadí [volba -r]

V tomto případě znovu použiji náš seznam distro. Reverzní funkce je samovysvětlující. Obrátí pořadí jakéhokoli obsahu, který máte ve svém souboru.

sort filename.txt -r

A zde máte výstupní text v obráceném pořadí:

5. Ubuntu
4. elementary
3. Mint
2. Manjaro
1. MX Linux

4. Náhodné řazení [volba -R]

Pokud jste omylem zmáčkli klávesu Shift při pokusu o funkci zpětného chodu, možná jste dostali nějaké podivné výsledky. -R přeuspořádá výstup v náhodném pořadí.

sort filename.txt -R

Zde je náhodně seřazený výstup:

4. elementary
1. MX Linux
2. Manjaro
5. Ubuntu
3. Mint

5. Řadit podle měsíců [možnost -M]

Třídění má také vestavěnou funkcionalitu pro uspořádání podle měsíce. Rozpoznává několik formátů na základě informací specifických pro národní prostředí. Pokusil jsem se předvést nějaké neznámé testy, abych ukázal, že se to zařídí podle data-den, ale ne podle roku. Před celými jmény se zobrazují zkratky měsíců.

Zde je ukázkový textový soubor v tomto příkladu:

March
Feb
February
April
August
July
June
November
October
December
May
September
1
4
3
6
01/05/19
01/10/19
02/06/18

Seřaďme to podle měsíců pomocí možnosti -M:

sort filename.txt -M

Zde je výstup, který uvidíte:

01/05/19
01/10/19
02/06/18
1
3
4
6
Jan
Feb
February
March
April
May
June
July
August
September
October
November
December

6. Uložte seřazené výsledky do jiného souboru

Jak jsem již zmínil dříve, řazení ve výchozím nastavení nezmění původní soubor. Pokud potřebujete uložit seřazený obsah, lze to provést.

Pro tento příklad jsem vytvořil nový soubor, kde chci, aby se vytištěné informace vytiskly a uložily s názvem název_souboru.txt.

Upozornění: Pokud se pokusíte přesměrovat seřazená data do stejného souboru, smaže se obsah vašeho souboru.

sort filename.txt -n > filename_sorted.txt

Pokud na výstupní soubor použijete příkaz cat, bude jeho obsahem toto:

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

7. Seřadit konkrétní sloupec [volba -k]

Pokud máte v souboru tabulku, můžete použít -k možnost určit, který sloupec se má řadit. Přidal jsem nějaká libovolná čísla jako třetí sloupec a zobrazí se výstup seřazený podle každého sloupce. Zahrnul jsem několik příkladů, které ukazují rozmanitost možných výstupů. Možnosti jsou přidány za číslo sloupce.

1. MX Linux 100
2. Manjaro 400
3. Mint 300
4. elementary 500
5. Ubuntu 200
sort filename.txt -k 2

Tím se seřadí text ve druhém sloupci v abecedním pořadí:

4. elementary 500
2. Manjaro 400
3. Mint 300
1. MX Linux 100
5. Ubuntu 200
sort filename.txt -k 3n

Tím se seřadí text podle číslic ve třetím sloupci.

1. MX Linux 100
5. Ubuntu 200
3. Mint 300
2. Manjaro 400
4. elementary 500
sort filename.txt -k 3nr

Stejné jako výše uvedený příkaz, ale pořadí řazení bylo obráceno.

4. elementary 500
2. Manjaro 400
3. Mint 300
5. Ubuntu 200
1. MX Linux 100

8. Seřadit a odstranit duplikáty [volba -u]

Pokud máte soubor s potenciálními duplikáty, -u možnost vám výrazně usnadní život. Pamatujte, že řazení neprovede změny v původním datovém souboru. Rozhodl jsem se vytvořit nový soubor pouze s položkami, které jsou duplikáty. Níže uvidíte vstup a poté obsah každého souboru po spuštění příkazu.

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
sort filename.txt -u > filename_duplicates.txt

Zde jsou výstupní soubory seřazené a bez duplikátů.

1. MX Linux 
2. Manjaro 
3. Mint 
4. elementary 
5. Ubuntu 

9. Ignorovat malá a velká písmena při řazení [volba -f]

Mnoho moderních distribucí se systémem řazení bude ve výchozím nastavení implementovat ignorování velkých písmen. Pokud tomu tak není, přidejte -f možnost přinese očekávané výsledky.

sort filename.txt -f

Zde je výstup, kde jsou případy ignorovány příkazem sort:

alpha
alPHa
Alpha
ALpha
beta
Beta
BEta
BETA

10. Seřadit podle lidských číselných hodnot [volba -h]

Tato možnost umožňuje porovnání alfanumerických hodnot jako 1k (tj. 1000).

sort filename.txt -h

Zde je seřazený výstup:

10.0
100
1000.0
1k

Doufám, že vám tento tutoriál pomohl získat základní použití příkazu sort v Linuxu. Příkaz Sort se v Linuxu často používá ve spojení s příkazem uniq pro jedinečné třídění textových souborů.

Pokud máte nějaký skvělý trik na třídění, proč se o něj s námi nepodělit v sekci komentářů?


Linux
  1. 12 Užitečné příklady příkazů Wget v Linuxu

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

  3. Příkaz ls v Linuxu:17 vysvětlení užitečných příkladů

  1. 5 Praktické příklady příkazu dd v Linuxu

  2. Jak používat příkaz id v Linuxu:5 užitečných příkladů

  3. Užitečné příklady příkazu Docker ps

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

  2. 9 Užitečné příklady příkazu Split v Linuxu

  3. sort Příklady příkazů v Linuxu