Sort: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 1: Line 1:
Teema võttis: Marko Valing, AK31
== Sissejuhatus ==
== Sissejuhatus ==
'''sort''' käsk sorteerib sisendi/faili sisu vastavalt väljadele - tühikute või muude märkidega eraldatud rea osad. Vaikimisi eraldab '''sort''' käsk välju tühikute järgi. Siiski on võimalik anda ette mõni muu eraldaja (näiteks ",", ";", ":" jne) kasutades '''-t''' võtit. Käsu väljund trükitakse ekraanile juhul, kui ei suunata seda faili. '''sort''' programm, ei muuda kunagi sorteeritava faili sisu.
'''sort''' programm sorteerib sisendi/faili sisu vastavalt väljadele - tühikute või muude märkidega eraldatud rea osad. Vaikimisi eraldab '''sort''' programm välju tühikute järgi. Siiski on võimalik anda ette mõni muu eraldaja (näiteks ",", ";", ":" jne) kasutades '''-t''' võtit. Käsu väljund trükitakse ekraanile juhul, kui ei suunata seda faili.  
*'''sort''' programm, ei muuda kunagi sorteeritava faili sisu.
*'''sort''' programmi kasutamisel ei pea ole root ehk juur kasutaja, va juhul kui väljundit soovitakse suunata kausta, kuhu tavakasutajal pole õigusi.


== Süntaks ==
== Süntaks ==
Line 108: Line 108:
*http://www.devdaily.com/unix/edu/examples/sort.shtml
*http://www.devdaily.com/unix/edu/examples/sort.shtml
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
==Autor==
Marko Valing, AK31, 2010/2011

Revision as of 10:54, 9 January 2011

Sissejuhatus

sort programm sorteerib sisendi/faili sisu vastavalt väljadele - tühikute või muude märkidega eraldatud rea osad. Vaikimisi eraldab sort programm välju tühikute järgi. Siiski on võimalik anda ette mõni muu eraldaja (näiteks ",", ";", ":" jne) kasutades -t võtit. Käsu väljund trükitakse ekraanile juhul, kui ei suunata seda faili.

  • sort programm, ei muuda kunagi sorteeritava faili sisu.
  • sort programmi kasutamisel ei pea ole root ehk juur kasutaja, va juhul kui väljundit soovitakse suunata kausta, kuhu tavakasutajal pole õigusi.

Süntaks

sort <võtmed> <faili nimi>

Võtmed

sort käsul on kolm režiimi, vaikimisi, liitmine (-m) ja kontroll (-c)

  • -c Kontrollib, kas sisendiks antud andmed on sorteeritud. Juhul kui ei ole sorteeritud, trükitakse veateade ning lõpetatakse programmi töö staatus 1-ga.
  • -m Liidetakse sisendiks antud juba sorteeritud andmed. Andmete sorteerimist uuesti ei toimu.

Põhilised võtmed

  • -b Ignoreeritakse väljadele või eraldajatele järgnevaid tühikuid.
  • -d Võetakse arvesse ainult tühikud, tähed ja numbrid [a-z A-Z 0-9].
  • -f Kaotatakse sorteeritavates ridades tõstutundlikuse, st "b" ja "B" sorteeritakse kui võrdseid.
  • -g Sorteeritakse numbrite jada väärtuse mitte järjekorra järgi. Toob kaasa ka võtme -b.
  • -i Ignoreeritakse mitte-trükitavaid tähemärke.
  • -M Kalendri järgi kuude sorteerimine, vastavalt hetke lokaadi(locale) järgi. Toob kaasa ka võtme -b.
  • -h Sorteeritakse vastavalt inimloetavate numbrite järgi.
  • -n Sorteeritakse välja arvutatud stringi numbriline väärtuse järgi. Toob kaasa ka võtme -b.
  • -R Sorteeritakse juhuslikult väljade räsi järgi.
  • -r Sorteeritud andmed väljastatakse vastupidises järjekorras, vaikimisi on väiksemad ees.
  • -V Versiooni järgi sorteerimine.
  • --sort=SONA Sorteerimine vastavalt SONA-le. general-numeric -g, human-numeric -h, month -M, numeric -n, random -R, version -V
  • --random-source=FAIL Võetakse juhuslikud bitid failist.

Muud võtmed

  • -C Sama nagu -c kuid ei väljastata esimest veaga rida.
  • -k POS1[,POS2] Võimaldab määrata väljad, mille järgi read sorteeritakse. POS1 tuleb asendada esimese eraldaja järjekorra numbriga reas alates millest on vaja sorteerida, POS2 tuleb asendada viimase eraldaja järjekorra numbriga reas kuni milleni on vaja sorteerida. Kui POS2 on määramata, siis vaikimisi sorteeritakse rea lõpuni.
  • -l Sorteeritakse vastavalt hetke lokaadile(locale).
  • -o FAIL Sorteeritud andmete väljund suunatakse faili, mitte standardväljundisse.
  • -S SUURUS Määrab ära mälupuhvri suuruse vastavalt SUURUS väärtusele.
  • -t ERALDAJA Võimaldab määrata väljade eraldaja.
  • -T KATALOOG Programmi käivitamisel loodavad ajutised failid hoitakse kataloogis KATALOOG.
  • -u Koos võtmega -c tehakse range järjestatuse kontroll. Vaikimisi, väljastatakse võrdsetest ridadest ainult üks.
  • -z Lõpetab read reavahetuse asemel 0 baidiga.
  • -s' Vajab täiendamist.
  • --batch-size=NMERGE Vajab täiendamist.
  • --compress-program=PROG Vajab täiendamist.
  • --files0-from=F Vajab täiendamist.
  • --help Väljastatakse programmi sort abiinfo.
  • --version Väljastatakse programmi sort versiooon.

Näited

Protsessi tabeli sorteerimine PID välja järgi

$ ps aux | sort -nk2

-nk2 tähendab, et sorteeritakse teise välja (-k2) numbrilise väärtuse (-n) järgi.

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  23844  2000 ?        Ss   14:33   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    14:33   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    14:33   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S    14:33   0:00 [migration/0]
root         5  0.0  0.0      0     0 ?        S    14:33   0:00 [watchdog/0]
...

Perekonnanime välja järgi sorteerimine

$ sort -k2 andmed.txt

-k2 tähendab, et sorteeritakse teise välja (k2) järgi.

$ cat andmed.txt 
Peeter Uuno 90000 Põlva
Marileen Jalakas 10000 Viljandi
Tõnu Tõnter 25000 Tartu
Lii Lillekas 35000 Kärdla
Roland Reemus 61000 Tartu
Taranatel Taevatäht 5200 Maardu

$ sort -k2 andmed.txt 
Marileen Jalakas 10000 Viljandi
Lii Lillekas 35000 Kärdla
Roland Reemus 61000 Tartu
Taranatel Taevatäht 5200 Maardu
Tõnu Tõnter 25000 Tartu
Peeter Uuno 90000 Põlva

Sorteerimine numbri jada väärtuse järgi ridadel, kus eraldaja on ";"

$ sort -t ";" -rnk3 andmed.txt -t ";" määrab ära, et eraldajaks on ";", -n määrab ära, et numbrid sorteeritakse väärtuse, mitte järjekorra järgi, -k3 määrab ära, et sorteeritakse kolmandat välja ning -r määrab, et sorteeritud andmed kuvatakse teises järjekorras, st suuremad ennem.

 $ cat andmed.txt 
 Peeter Uuno 90000 Põlva
 Mari Jalakas 10000 Viljandi
 Tõnu Tõnter 2500 Tartu
 Liis Lillekas 3500 Kärdla
 Roland Reemus 61000 Tartu
 Taavi Taevatäht 5200 Maardu

 $ sort -t ";" -rnk3 andmed.txt
 Peeter Uuno 90000 Põlva
 Roland Reemus 61000 Tartu
 Mari Jalakas 10000 Viljandi
 Taavi Taevatäht 5200 Maardu
 Liis Lillekas 3500 Kärdla 
 Tõnu Tõnter 2500 Tartu 

Allikad/Lingid

Autor

Marko Valing, AK31, 2010/2011