Položky, které mají být seřazeny, musí být určitým způsobem vymezeny
Data v textovém souboru systému Linux lze třídit pomocí příkazu řazení, pokud je každý prvek nějakým způsobem vymezen. Čárka se často používá jako oddělovač pro vymezené informace.
Základní pravidla třídění
Příkaz řazení uspořádá řádky v textovém souboru a řičí je číselně a abecedně. Výchozí pravidla pro příkaz řazení jsou:
- Text, který začíná číslem, se zobrazí před textem začínajícím písmenem. nižší čísla se třídí jako první.
- Text, který začíná písmenem, které se objeví v abecedě dřívější než první písmeno ostatních položek textu, je roztříděno před textem začínajícím písmenem, které se objeví později v abecedě.
- Pokud text začíná velkými a malými instancemi stejného písmene, je malá instance nejprve roztříděna.
Třídění textového souboru
Chcete-li třídit linky v odděleném souboru Linux, použijte příkaz řazení takto:
$ sort -k2 test.txtkterý třídí soubor "test.txt" podle znaků začínajících ve druhém sloupci (k2 odkazuje na druhý sloupec). Za předpokladu, že vstupní soubor je:
1, Justin Timberlake, titul 545, cena $ 7.30 2, Taylor Swift, titul 723, cena $ 7.90 3, Mick Jagger, titul 610, cena $ 7.90 4, Lady Gaga, titul 118, cena $ 7.30 5, Johnny Cash, titul 482, cena $ 6.50 6, Elvis Presley, titul 335, cena 7,30 dolar 7, John Lennon, titul 271, cena $ 7,90 8, Michael Jackson, titul 373, cena $ 5,50Protože druhý sloupec v tomto příkladu obsahuje jméno a příjmení, je tříděný výstup uspořádán prvním písmenem prvního jména každého jednotlivého ve druhém sloupci - Elvis, John, Johnny, Justin, Lady, Michael, Mick a Taylor , Jak je ukázáno níže:
6, Elvis Presley, Název 335, Cena $ 6.30 7, John Lennon, Název 271, Cena $ 7.90 5, Johnny Cash, Název 482, Cena $ 6.50 1, Justin Timberlake, Název 545, Cena $ 6.30 4, Lady Gaga, Název 118, Cena $ 6.30 8, Michael Jackson, titul 373, cena $ 5.50 3, Mick Jagger, titul 610, cena $ 7.90 2, Taylor Swift, titul 723, cena $ 7.90Pokud třídíte soubor s -k3 (pomocí obsahu řádku začínajícího ve sloupci 3 - sloupce číslo titulu), výstup je:
4, Lady Gaga, titul 118, cena $ 6.30 7, John Lennon, titul 271, cena $ 7.90 6, Elvis Presley, titul 335, cena $ 6.30 8, Michael Jackson, titul 373, cena $ 5.50 5, Johnny Cash, titul 482, 1, Justin Timberlake, Název 545, Cena $ 6.30 3, Mick Jagger, Název 610, Cena $ 7.90 2, Taylor Swift, Název 723, Cena $ 7.90a
$ sort -k4 test.txtprodukuje seznam seřazený podle ceny:
8, Michael Jackson, titul 373, cena $ 5.50 1, Justin Timberlake, titul 545, cena $ 6.30 4, Lady Gaga, titul 118, cena $ 6.30 6, Elvis Presley, titul 335, cena $ 6.30 5, Johnny Cash, titul 482, 2, Taylor Swift, Název 723, Cena $ 7.90 3, Mick Jagger, Název 610, Cena $ 7.90 7, John Lennon, Název 271, Cena $ 7.90Zrušení třídění
Možnost -r zruší třídění. Například pomocí výše uvedených výsledků:
$ sort -k4 -r test.txtvýtěžky:
7, John Lennon, Název 271, Cena $ 7.90 3, Mick Jagger, Název 610, Cena $ 7.90 2, Taylor Swift, Název 723, Cena $ 7.90 5, Johnny Cash, Název 482, Cena $ 6.50 6, Elvis Presley, Název 335, 4, Lady Gaga, titul 118, cena $ 6.30 1, Justin Timberlake, titul 545, cena $ 6.30 8, Michael Jackson, titul 373, cena $ 5.50Uložení tříděného souboru
Třídění souboru jej neuloží. Chcete-li uložit tříděný seznam do souboru, použijete operátor přesměrování:
třída -k4 -r test.txt> test_new.txtkde "test_new.txt" je nový soubor.
Třídění výstupu proudu
Příkaz řazení můžete také použít na výstup datového proudu, například operátor potrubí:
$ ls -al | řazení -r -n -k5Tím se třídí výstup seznamu souborů vygenerovaný příkazem ls podle velikosti souboru, počínaje největšími soubory. Operátor -n určuje spíše číselné řazení než abecední.