Сорт (Уни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-у, користи алгоритам сортирања обједињавањем.

Референце[уреди | уреди извор]

  1. ^ „Тхе ГНУ Басх Референце Мануал, фор Басх, Версион 4.2: Сецтион 3.1.2.4 АНСИ-C Qуотинг”. Фрее Софтwаре Фоундатион, Инц. 28. 12. 2010. Приступљено 1. 2. 2013. „Wордс оф тхе форм $'стринг' аре треатед специаллy. Тхе wорд еxпандс то стринг, wитх бацксласх-есцапед цхарацтерс реплацед ас специфиед бy тхе АНСИ C стандард. 
  2. ^ „КорнСхелл ФАQ”. Архивирано из оригинала 22. 05. 2013. г. Приступљено 1. 2. 2013. „Тхе $'...' стринг литерал сyнтаx wас аддед то ксх93 то солве тхе проблем оф ентеринг специал цхарацтерс ин сцриптс. Ит усес АНСИ-C рулес то транслате тхе стринг бетwеен тхе '...'. 

Спољашње везе[уреди | уреди извор]