Сорт (Униx)
У Оперативним системима заснованим на Униx-у сорт је стандардни програм командне линије који штампа линије улазне вредности која се задаје преко командне линије у уређеном поретку. Сортирање се базира на једном или више кључева који се узимају из сваке линије улазне вредности. По дифолту, цело улаз се узима као кључ. Празно поље је подразимеван сепаратор.
Примери[уреди | уреди извор]
Сортирање по абецеди[уреди | уреди извор]
$ cat phonebook Smith, Brett 555-4321 Doe, John 555-1234 Doe, Jane 555-3214 Avery, Cory 555-4132 Fogarty, Suzie 555-2314 $ sort phonebook Avery, Cory 555-4132 Doe, Jane 555-3214 Doe, John 555-1234 Fogarty, Suzie 555-2314 Smith, Brett 555-4321
Сортирање по броју[уреди | уреди извор]
-n
опција сортира по нумеричкој вредности:
$ du /bin/* | sort -n 4 /bin/domainname 24 /bin/ls 102 /bin/sh 304 /bin/csh
Сортирање директоријума по величини докумената[уреди | уреди извор]
$ ls -s | sort -n 96 Nov1.txt 128 _arch_backup.lst 128 _arch_backup.lst.tmp 1708 NMON
У старијим верзијама програма, +1
опција је сортирала на основу друге колоне инпута (+2
за трећу, итд.). Ово је застарело, и уместо тога -k
опција постиже исту ствар ("-k 2
" за другу колону):
$ cat zipcode Adam 12345 Bob 34567 Joe 56789 Sam 45678 Wendy 23456 $ sort -nk 2 zipcode Adam 12345 Wendy 23456 Bob 34567 Sam 45678 Joe 56789
Сортирање на више поља[уреди | уреди извор]
Опција -k m,n
сортира одређено поље (почетак на m
, крај на n
):
$ cat quota bob 1000 an 1000 chad 1000 don 1500 eric 5000 fred 2000 $ sort -k2n,2 -k1,1 quota an 1000 bob 1000 chad 1000 don 1500 fred 2000 eric 5000
-k2
је за другу колону, n
је за сортирање по нумеричкој вредности.
Сортирање датотеке која је делимитирана пипе-ом[уреди | уреди извор]
$ sort -t'|' -k2 zipcode Adam|12345 Wendy|23456 Bob|34567 Sam|45678 Joe|56789
Сортирање датотеке која је делимитирана табулатором[уреди | уреди извор]
Сортирање датотеке са вредностима одвојеним табулатором захтева да се наведе карактер за табулатор као делимитер колоне. У овој илустрацији је коришћена долар-наводник нотација схелл-а[1][2] како би се означио табулатор као C "есцапе" секвенца.
$ sort -k2,2 -t $'\t' phonebook Doe, John 555-1234 Fogarty, Suzie 555-2314 Doe, Jane 555-3214 Avery, Cory 555-4132 Smith, Brett 555-4321
Сортирање у опадајућем поретку[уреди | уреди извор]
Опција -r
обрће вредност сорт-а:
$ sort -nrk 2 zipcode Joe 56789 Sam 45678 Bob 34567 Wendy 23456 Adam 12345
Насумично сортирање[уреди | уреди извор]
ГНУ имплементација има "--рандом-сорт" опцију.
Алгоритам за сортирање[уреди | уреди извор]
Имплементација у "ГНУ Цоре Утилитиес", која се користи у Линуx-у, користи алгоритам сортирања обједињавањем.
Референце[уреди | уреди извор]
- ^ „Тхе ГНУ Басх Референце Мануал, фор Басх, Версион 4.2: Сецтион 3.1.2.4 АНСИ-C Qуотинг”. Фрее Софтwаре Фоундатион, Инц. 28. 12. 2010. Приступљено 1. 2. 2013. „Wордс оф тхе форм $'стринг' аре треатед специаллy. Тхе wорд еxпандс то стринг, wитх бацксласх-есцапед цхарацтерс реплацед ас специфиед бy тхе АНСИ C стандард.”
- ^ „КорнСхелл ФАQ”. Архивирано из оригинала 22. 05. 2013. г. Приступљено 1. 2. 2013. „Тхе $'...' стринг литерал сyнтаx wас аддед то ксх93 то солве тхе проблем оф ентеринг специал цхарацтерс ин сцриптс. Ит усес АНСИ-C рулес то транслате тхе стринг бетwеен тхе '...'.”