sort
sort on komentoriviohjelma, joka tulostaa tiedoston sisällön tai sille putkitetun tiedon järjestetettynä suuruusjärjestykseen. Esimerkiksi mikäli on tiedosto teksti.txt jonka sisältö on seuraava:
54 ab 54 aa foo 3 gnu 4
Kun tämä tiedosto sitten annetaan sort:ille parametrina, se tulostuu seuraavasti:
$ sort testi.txt 3 gnu 4 54 aa foo 54 ab
Valitsimia
Sopivilla valitsimilla voi muokata sortin toimintaa:
- -f, --ignore-case: Älä huomioi isojen ja pienten kirjainten eroa.
- -k, --key=KEYDEF: Järjestää rivit KEYDEF määrittelemän kentän mukaan. Kenttien erotinmerkkinä tyhjätilamerkki.
- -M, --month-sort: Huomioi kuukaudet seuraavasti: JAN < ... < DEC
- -n, --numeric-sort: Vertaa merkkijonoja numeroina (jolloin 101>11, ilman tätä päinvastoin).
- -o, --output=TIEDOSTO: Kirjoita tuloste tiedostoon TIEDOSTO.
- -r, --reverse: Tuloste käännetyssä järjestyksessä.
- -R, --random-sort: Järjestä rivit satunnaiseen järjestykseen.
- --random-source: Satunnaisdatan lähde (esimerkiksi /dev/random tai /dev/urandom).
Lajittelu sarakkeittain
-k, --keydef -valitsimella voi lajitella rivejä sarakkeittain yhden tai useamman sarakkeen perusteella. Lajittelujärjestys voidaan ilmaista sarakekohtaisesti muilla valitsimilla.
Lajittele seitsemäs sarake numerojärjestykseen:
sort -k 7n
Lajittele ensin neljännen ja sitten viidennen sarakkeen perusteella:
sort -k 4 -k 5
Lajittele ensin neljännen ja sitten viidennen sarakkeen perusteella. Viides sarake numerojärjestyksessä:
sort -k 4 -k 5n
Lajittelu kuukauden perusteella
Sortin -M-valitsimella voi lajitella kuukauden perusteella. Oletusarvoisesti valitsin toimii vain silloin, kun kuukaudet on kirjoitettu isoilla kirjaimilla: JAN, FEB, MAR, jne...
Avuksi voi ottaa f-valitsimen, joka käskee Sort-toimintoa sivuuttamaan kirjainkoon:
sort -f -M
Jos sarakkeessa 6 on vuosiluku ja sarakkeessa 5 kuukausi, vuoden ja kuukauden perusteella lajittelu tapahtuisi näin:
sort -f -k 6n -k 5M