Položky, ktoré sa majú triediť, musia byť nejakým spôsobom vymedzené
Údaje v textovom súbore Linuxu sa dajú triediť pomocou príkazu sort tak dlho, ako je každý prvok vymedzený nejakým spôsobom. Často sa čiarka používa ako oddeľovač pre vymedzené informácie.
Základné pravidlá triedenia
Príkaz triedenie presmeruje riadky do textového súboru a zoradí ich číselne a abecedne. Predvolené pravidlá pre príkaz triedenia sú:
- Pred textom, ktorý začína písmenom, sa zobrazí text začínajúci číslom. nižšie čísla sa triedia.
- Text, ktorý začína písmenom, ktoré sa objavuje v abecede skôr, ako prvé písmeno iných položiek textu je roztriedené pred textom, ktorý začína písmenom, ktoré sa objaví neskôr v abecede.
- Ak sa text začína veľkými a malými inštanciami toho istého písmena, malá inštancia sa najprv zoradí.
Triedenie textového súboru
Ak chcete triediť riadky v ohraničenom súbore Linuxu, použijete tento príkaz ako:
$ sort -k2 test.txtktorý zoraďuje súbor "test.txt" podľa znakov začínajúcich v druhom stĺpci (k2 sa týka druhého stĺpca). Za predpokladu, že obsah vstupného súboru 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 dolárov 5, Johnny Cash, titul 482, 6, Elvis Presley, titul 335, cena 7,30 dolárov 7, John Lennon, titul 271, cena 7,90 dolárov 8, Michael Jackson, titul 373, cena 5,50 dolárovPretože druhý stĺpec v tomto príklade obsahuje meno a priezvisko, triedený výstup je usporiadaný prvým písmenom prvého mena každého jednotlivca v druhom stĺpci - Elvis, John, Johnny, Justin, Lady, Michael, Mick a Taylor , ako je ukázané nižšie:
6, Elvis Presley, titul 335, cena $ 6.30 7, John Lennon, titul 271, cena $ 7.90 5, Johnny Cash, titul 482, cena $ 6.50 1, Justin Timberlake, titul 545, cena $ 6.30 4, Lady Gaga, titul 118, 8, Michael Jackson, titul 373, cena 5,50 dolárov 3, Mick Jagger, titul 610, cena 7,90 dolárov 2, Taylor Swift, titul 723, cena 7,90 dolárovAk zoradíte súbor s -k3 (pomocou obsahu riadku začínajúceho v stĺpci 3 - stĺpci Čí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 dolárov 8, Michael Jackson, titul 373, cena 5,50 dolárov 5, Johnny Cash, titul 482, 1, Justin Timberlake, titul 545, cena $ 6.30 3, Mick Jagger, titul 610, cena $ 7.90 2, Taylor Swift, titul 723, cena $ 7.90a
$ sort -k4 test.txtvyrába zoznam zoradený podľa ceny:
8, Michael Jackson, titul 373, cena $ 5,50 1, Justin Timberlake, titul 545, cena 6,30 dolárov 4, Lady Gaga, titul 118, cena 6,30 dolárov 6, Elvis Presley, titul 335, cena 6,30 dolárov 5, Johnny Cash, titul 482, 2, Taylor Swift, titul 723, cena $ 7.90 3, Mick Jagger, titul 610, cena 7,90 dolárov 7, John Lennon, titul 271, cena 7,90 dolárovZrušenie triedenia
Možnosť -r zvráti triedenie. Napríklad pomocou vyššie uvedených výsledkov:
$ sort -k4 -r test.txtvýťažky:
7, John Lennon, Title 271, Cena $ 7.90 3, Mick Jagger, Názov 610, Cena $ 7.90 2, Taylor Swift, Názov 723, Cena $ 7.90 5, Johnny Cash, Názov 482, Cena $ 6.50 6, Elvis Presley, Názov 335, 4, Lady Gaga, titul 118, cena 6,30 dolárov 1, Justin Timberlake, titul 545, cena 6,30 dolárov 8, Michael Jackson, titul 373, cena 5,50 dolárovUloženie triedeného súboru
Triedenie súboru ho neuloží. Ak chcete uložiť triedený zoznam do súboru, použite operátor presmerovania:
triediť -k4 -r test.txt> test_new.txtkde "test_new.txt" je nový súbor.
Zoradenie výstupu prúdu
Príkaz na triedenie môžete použiť aj na výstup prúdu, napríklad operátora potrubia:
$ ls -al | sort -r -n -k5Tým sa zoradí výstup zo zoznamu súborov vygenerovaný príkazom ls podľa veľkosti súboru, začínajúc najväčšími súbormi. Operátor -n špecifikuje skôr numerické triedenie než abecedné.