GNU/Linux >> Znalost Linux >  >> Linux

Jak třídit soubory v Linuxu pomocí příkazu Sort

Příkaz Sort je užitečný pro řazení/řazení řádků v textových souborech. Data můžete třídit v textovém souboru a zobrazit výstup na obrazovce nebo je přesměrovat do souboru. Na základě vašeho požadavku nabízí řazení několik možností příkazového řádku pro řazení dat v textovém souboru.

Sort syntaxe příkazu:

$ sort [-options]

Zde je například testovací soubor:

$ cat test
zzz
sss
qqq
aaa
BBB
ddd
AAA

A zde je to, co získáte, když je příkaz sort proveden na tomto souboru bez jakékoli volby. Setřídí řádky v testovacím souboru a zobrazí setříděný výstup.

$ sort test
aaa
AAA
BBB
ddd
qqq
sss
zzz

1. Proveďte číselné řazení pomocí volby -n

Pokud chceme třídit podle číselné hodnoty, můžeme použít -n nebo –numeric-sort možnost.

Pro tento příklad vytvořte následující testovací soubor:

$ cat test
22 zzz
33 sss
11 qqq
77 aaa
55 BBB

Následující příkaz sort seřadí řádky v testovacím souboru podle číselné hodnoty v prvním slově řádku a zobrazí setříděný výstup.

$ sort -n test
11 qqq
22 zzz
33 sss
55 BBB
77 aaa

2. Seřadit čísla čitelná pro člověka pomocí volby -h

Pokud chceme třídit podle lidsky čitelných čísel (např. 2K 1M 1G), můžeme použít -h nebo –human-numeric-sort možnost.

Pro tento příklad vytvořte následující testovací soubor:

$ cat test
2K
2G
1K
6T
1T
1G
2M

Následující příkaz sort seřadí pro člověka čitelná čísla (tj. 1K =1 tisíc, 1M =1 milion, 1G =1 Giga, 1T =1 Tera) v testovacím souboru a zobrazí setříděný výstup.

$ sort -h test
1K
2K
2M
1G
2G
1T
6T

3. Seřadit měsíce v roce pomocí volby -M

Pokud chceme řadit v řádu měsíců v roce, pak můžeme použít -M nebo –třídění podle měsíce možnost.

Pro tento příklad vytvořte následující testovací soubor:

$ cat test
sept
aug
jan
oct
apr
feb
mar11

Následující příkaz sort seřadí řádky v testovacím souboru podle měsíčního pořadí. Poznámka, řádky v souboru by měly obsahovat alespoň 3 znaky názvu měsíce na začátku řádku (např. jan, feb, mar). Pokud dáme ja pro leden nebo au pro srpen, příkaz sort to nebude považovat za název měsíce.

$ sort -M test
jan
feb
mar11
apr
aug
sept
oct

4. Zkontrolujte, zda je obsah již seřazen pomocí volby -c

Pokud chceme zkontrolovat, zda jsou data v textovém souboru seřazená nebo ne, můžeme použít -c nebo –check, –check=diagnose-first možnost.

Pro tento příklad vytvořte následující testovací soubor:

$ cat test
2
5
1
6

Následující příkaz sort zkontroluje, zda jsou data textového souboru setříděna nebo ne. Pokud tomu tak není, zobrazí se první výskyt s číslem řádku a neuspořádanou hodnotou.

$ sort -c test
sort: test:3: disorder: 1

5. Změňte výstup a zkontrolujte jedinečnost pomocí voleb -r a -u

Pokud chceme získat setříděný výstup v obráceném pořadí, pak můžeme použít -r nebo –zpětně volba. Pokud soubor obsahuje duplicitní řádky, pak pro získání jedinečných řádků v seřazeném výstupu lze použít volbu „-u“.

Pro tento příklad vytvořte následující testovací soubor:

$ cat test
5
2
2
1
4
4

Následující příkaz sort seřadí řádky v testovacím souboru v opačném pořadí a zobrazí setříděný výstup.

$ sort -r test
5
4
4
2
2
1

Následující příkaz sort třídí řádky v testovacím souboru v opačném pořadí a odstraňuje duplicitní řádky z setříděného výstupu.

$ sort -r -u test
5
4
2
1

6. Selektivně třídit obsah, přizpůsobit oddělovač, zapisovat výstup do souboru pomocí možností  -k, -t, -o

Pokud chceme třídit podle pozice sloupce nebo slova v řádcích textového souboru, pak lze použít volbu „-k“. Pokud je každé slovo v každém řádku souboru odděleno oddělovačem kromě ‚mezera‘, pak můžeme oddělovač určit pomocí volby „-t“. Můžeme získat seřazený výstup v libovolném zadaném výstupním souboru (pomocí volby „-o“) namísto zobrazení výstupu na standardním výstupu.

Pro tento příklad vytvořte následující testovací soubor:

$ cat test
aa aa zz
aa aa ff
aa aa tt
aa aa kk

Následující příkaz sort seřadí řádky v testovacím souboru podle 3. slova každého řádku a zobrazí setříděný výstup.

$ sort -k3 test
aa aa ff
aa aa kk
aa aa tt
aa aa zz
$ cat test
aa|5a|zz
aa|2a|ff
aa|1a|tt
aa|3a|kk

Zde se používá dohromady několik možností. V testovacím souboru jsou slova na každém řádku oddělena oddělovačem ‚|‘. Třídí řádky v testovacím souboru na 2. slově každého řádku na základě číselné hodnoty a ukládá setříděný výstup do zadaného výstupního souboru.

$ sort -n -t'|' -k2 test -o outfile

Obsah výstupního souboru je uveden níže.

$ cat outfile
aa|1a|tt
aa|2a|ff
aa|3a|kk
aa|5a|zz


Linux
  1. Jak provést řádkové porovnání souborů v Linuxu pomocí příkazu diff - Část II

  2. Jak provádět řádkové porovnání souborů v Linuxu pomocí příkazu diff

  3. Jak restartovat Linux pomocí příkazového řádku

  1. Jak komprimovat a extrahovat soubory pomocí příkazu tar v systému Linux?

  2. Jak zabít proces v Linuxu pomocí příkazu?

  3. Jak bezpečně přenášet soubory pomocí příkazu SCP v systému Linux

  1. Jak přejmenovat soubory v Linuxu

  2. Jak třídit soubory podle jejich oprávnění pomocí Ls?

  3. Jak vytvořit řídké soubory v Linuxu pomocí příkazu „dd“.