Linuxi sortimiskäsu reeglid ja näited
Andmed a Linux tekstifaili saab sortida käsuga sort, kui iga element on mingil viisil piiritletud. Sageli kasutatakse eraldatud teabe eraldajana koma.

Sorteerimise põhireeglid
Sorteerimiskäsk korraldab tekstifailis read ümber, et järjestada read numbriliselt ja tähestikuliselt. Sortimiskäsu vaikereeglid on järgmised:
- Tekst, mis algab numbriga, kuvatakse enne teksti, mis algab tähega; väiksemad numbrid sorteerige kõigepealt.
- Tekst, mis algab tähega, mis ilmub tähestikus varem kui teiste tekstikirjete esimene täht, sorteeritakse enne teksti, mis algab tähega, mis ilmub tähestikus hiljem.
- Millal tekst algab sama tähe suur- ja väiketähtedega, kõigepealt sorteeritakse väiketäht.
Tekstifaili sortimine
Eraldatud Linuxi faili ridade sortimiseks kasutage sortimist käsk nagu nii:
sorteeri -k2 tabel1.txt
See käsk sorteerib faili tabel1.txt teisest veerust algavate märkide järgi (k2 viitab teisele veerule). Eeldades, et sisendfaili sisu on:
1, Justin, Timberlake, pealkiri 545, hind 7,30 dollarit
2, Taylor, Swift, pealkiri 723, hind 7,90 dollarit
3, Mick, Jagger, pealkiri 610, hind 7,90 dollarit
4, Lady, Gaga, pealkiri 118, hind 7,30 dollarit
5, Johnny, sularaha, pealkiri 482, hind 6,50 dollarit
6, Elvis, Presley, pealkiri 335, hind 7,30 dollarit
7, John, Lennon, pealkiri 271, hind 7,90 dollarit
8, Michael, Jackson, tiitel 373, hind 5,50 dollarit
Kuna selle näite teine veerg sisaldab eesnimesid, järjestatakse sorteeritud väljund teises veerus oleva iga inimese eesnime esitähe järgi, nagu allpool näidatud:
6, Elvis, Presley, pealkiri 335, hind 7,30 dollarit
7, John, Lennon, pealkiri 271, hind 7,90 dollarit
5, Johnny, sularaha, pealkiri 482, hind 6,50 dollarit
1, Justin, Timberlake, pealkiri 545, hind 7,30 dollarit
4, Lady, Gaga, pealkiri 118, hind 7,30 dollarit
8, Michael, Jackson, tiitel 373, hind 5,50 dollarit
3, Mick, Jagger, pealkiri 610, hind 7,90 dollarit
2, Taylor, Swift, pealkiri 723, hind 7,90 dollarit
Kui sorteerite faili -k3 (kasutades veerust algavat rea sisu 3, veerus Perekonnanimi), väljund on:
5, Johnny, sularaha, pealkiri 482, hind 6,50 dollarit
4, Lady, Gaga, pealkiri 118, hind 7,30 dollarit
8, Michael, Jackson, tiitel 373, hind 5,50 dollarit
3, Mick, Jagger, pealkiri 610, hind 7,90 dollarit
7, John, Lennon, pealkiri 271, hind 7,90 dollarit
6, Elvis, Presley, pealkiri 335, hind 7,30 dollarit
2, Taylor, Swift, pealkiri 723, hind 7,90 dollarit
1, Justin, Timberlake, pealkiri 545, hind 7,30 dollarit
ja -k5 koostab hinna järgi sorteeritud nimekirja:
4, Lady, Gaga, pealkiri 118, hind 7,30 dollarit
7, John, Lennon, pealkiri 271, hind 7,90 dollarit
6, Elvis, Presley, pealkiri 335, hind 7,30 dollarit
8, Michael, Jackson, tiitel 373, hind 5,50 dollarit
5, Johnny, sularaha, pealkiri 482, hind 6,50 dollarit
1, Justin, Timberlake, pealkiri 545, hind 7,30 dollarit
3, Mick, Jagger, pealkiri 610, hind 7,90 dollarit
2, Taylor, Swift, pealkiri 723, hind 7,90 dollarit
Oota, see ei töötanud, eks? Hinna järgi sortimise asemel sorteeris käsk nimekirja pealkirja numbri järgi. Miks? Noh, kui sellele pole antud eraldajat, mille juures see peaks iga rea veergudeks jaotama, kasutab see tühikuid. Kuna iga pealkirjakirje keskel on tühik, muutub iga kirje neljas veerg sõnaks "Pealkiri" ja viies veerg pealkirja numbriks.
Kasutage sortimise eraldaja määramiseks lippu -t. See määrab täpselt, kus käsk veerud eraldab.
sorteeri -t, -k5 tabel1.txt
See annab soovitud tulemuse:
8, Michael, Jackson, tiitel 373, hind 5,50 dollarit
5, Johnny, sularaha, pealkiri 482, hind 6,50 dollarit
1, Justin, Timberlake, pealkiri 545, hind 7,30 dollarit
4, Lady, Gaga, pealkiri 118, hind 7,30 dollarit
6, Elvis, Presley, pealkiri 335, hind 7,30 dollarit
2, Taylor, Swift, pealkiri 723, hind 7,90 dollarit
3, Mick, Jagger, pealkiri 610, hind 7,90 dollarit
7, John, Lennon, pealkiri 271, hind 7,90 dollarit
Tavaliselt soovite määrata eraldaja. See hoiab ära soovimatu segaduse ja ebatäpsed tulemused. See kehtib eriti suuremate failide puhul, mis ei pruugi alati ilmselgelt valed olla.
Pöörake sortimist
The -r valik muudab sortimise vastupidiseks. Näiteks kasutades ülaltoodud tulemusi:
sorteeri -r -t, -k5 tabel1.txt
annab:
7, John, Lennon, pealkiri 271, hind 7,90 dollarit
3, Mick, Jagger, pealkiri 610, hind 7,90 dollarit
2, Taylor, Swift, pealkiri 723, hind 7,90 dollarit
6, Elvis, Presley, pealkiri 335, hind 7,30 dollarit
4, Lady, Gaga, pealkiri 118, hind 7,30 dollarit
1, Justin, Timberlake, pealkiri 545, hind 7,30 dollarit
5, Johnny, sularaha, pealkiri 482, hind 6,50 dollarit
8, Michael, Jackson, tiitel 373, hind 5,50 dollarit
Salvestage sorteeritud fail
Faili sortimine ei salvesta seda. Sorteeritud loendi faili salvestamiseks kasutage ümbersuunamisoperaatorit:
sorteeri -k6 tabel1.txt > test_uus.txt
kus test_uus.txt on uus fail.
Vooväljundi sorteerimine
Sorteerimiskäsku saate rakendada ka voo väljundile, näiteks toruoperaatorile:
ls -n | sorteerida -t, -k5
See sorteerib poolt loodud faililoendi väljundi ls käsk faili suuruse järgi, alustades suurimatest failidest. The -n operaator määrab pigem numbrilise sortimise kui tähestikulise järjestuse.