SORT(1)             Narzędzia tekstowe GNU 2.0            SORT(1)


NAZWA
       sort - posortuj linie plików tekstowych

SKŁADNIA
       sort  [-cgmus] [-t separator] [-o plik-wyj] [-T kat-tymcz]
             [-bdfiMnrz] [+poz1 [-poz2]] [-k poz1[,poz2]]
             [plik...]

       sort  [--help] [--version]

OPIS
       Dokumentacja niniejsza nie jest już utrzymywana i może być
       niedokładna lub niekompletna.  Autorytatywnym źródłem jest
       obecnie dokumentacja Texinfo.   Dostęp  do  niej  uzyskasz
       wpisując w wierszu poleceń:
              pinfo sort
       lub
              info sort.

       Ta strona podręcznika opisuje polecenie sort w wersji GNU.

       sort sortuje,  zlepia  lub  porównuje  wszystkie  linie  z
       podanych  plików,  lub  standardowego  wejścia  jeśli  nie
       podano  żadnych.   Nazwa  pliku  '-'  oznacza  standardowe
       wejście.   Domyślnie, sort wypisuje rezultaty na standard­
       owe wyjście.

       sort ma  trzy  tryby  działania:  sortowanie  (domyślnie),
       zlepianie  i  sprawdzanie posortowania.  Następujące opcje
       zmieniają tryb działania:

       -c     Sprawdza czy podane pliki są już posortowane; jeśli
              nie  wszystkie  są,  wypisuje komunikat o błędzie i
              kończy pracę z kodem równym 1.

       -m     Zlepia podane pliki sortując je jako grupę.   Każdy
              plik  wejściowy  powinien być już posortowany indy­
              widualnie.  sort  działa  zawsze  sortując,  a  nie
              lepiąc;  zlepianie  udostępniono  ponieważ jest ono
              szybsze w tych przypadkach, w których działa.

       Para linii porównywana jest jak  następuje:  Jeśli  podano
       jakieś  pola  kluczowe,  sort  porównuje każdą parę pól, w
       porządku podanym w linii komend, według skojarzonych opcji
       porządkowania,   aż   znaleziona   zostanie  różnica  albo
       przeszukane zostaną wszystkie pola.  Wszystkie  porównania
       wykorzystują  porządek  znaków  określony przez ustawienie
       narodowe LC_COLLATE, chyba że podano inaczej.

       Jeśli użyto której z globalnych  opcji  Mbdfinr,  ale  nie
       podano  pól  kluczowych,  sort porównuje całe linie według
       opcji globalnych.

       W końcu, w ostatniej próbie, kiedy  wszystkie  porównywane



sierpień 1999                  FSF                              1





SORT(1)             Narzędzia tekstowe GNU 2.0            SORT(1)


       klucze   są   równe   (lub   nie   podano   żadnych  opcji
       porządkujących), sort porównuje linie  bajt  po  bajcie  w
       kolejności  sklejania zależnej od maszyny.  Ostatnia próba
       porównania bierze pod uwagę opcję -r.  Opcja  -s  (stable)
       wyłącza ostatnią próbę porównania, tak że linie, w których
       wszystkie pola są równie w porównaniu zostają pozostawione
       w  pierwotnej  kolejności  względnej.   Jeśli  nie  podano
       żadnych pól ani opcji globalnych, -s nie wywołuje efektów.

       GNU   sort  nie  ma  limitów  co  do  długości  linii  ani
       ograniczeń co do bajtów dozwolonych w  linii.   Dodatkowo,
       jeśli  ostatni bajt pliku wejściowego nie jest nową linią,
       GNU sort po cichu takową  dostawia.  Kończący  linię  znak
       nowej  linii w porównywaniu jest jej częścią. Na przykład,
       bez opcji, przy sortowaniu ASCII, linia rozpoczynająca się
       tabulacją  zostanie  umieszczona przed pustą linią, gdyż w
       porządku leksykograficznym ASCII znak tabulacji  poprzedza
       znak nowej linii.

       Przy błędzie sort kończy pracę z kodem '2'.

       Jeśli  ustawiono  zmienną  środowiskową TMPDIR, sort używa
       jej jako katalogu w którym należy umieścić  pliki  tymcza­
       sowe,  zamiast  domyślnego  /tmp.  Opcja -T kat-tymcz jest
       jeszcze jednym sposobem wybrania katalogu dla plików  tym­
       czasowych; zastępuje ona ową zmienną środowiskową.

       Poniższe  opcje  wpływają  na porządkowanie linii wyjścia.
       Mogą być one określone globalnie lub jako  część  konkret­
       nego pola kluczowego.  Jeśli nie podano żadnego pola kluc­
       zowego, opcje globalne  stosują  się  do  porównań  całych
       linii;  w  przeciwnym razie opcje globalne są dziedziczone
       przez pola kluczowe, dla  których  nie  określono  żadnych
       specjalnych  opcji.   Opcje  -b,  -d,  -f i -i klasyfikują
       znaki zgodnie z ustawieniami narodowymi LC_CTYPE.

       -b     Ignoruje początkowe znaki  puste  podczas  szukania
              kluczy sortowania w każdej linii.

       -d     Sortuje w porządku 'książki telefonicznej': podczas
              sortowania ignoruje wszystkie znaki  oprócz  liter,
              cyfr i znaków pustych.

       -f     Podstawia  znaki  małych liter za odpowiednie znaki
              dużych  liter  podczas  sortowania  tak   aby,   na
              przykład, 'b' sortowało się tak samo jak 'B'.

       -g     Sortuje  numerycznie,  posługując  się  standardową
              funkcją  C  strtod,   przekształcając   przedrostek
              każdej linii na liczbę zmiennoprzecinkową podwójnej
              precyzji. Umożliwia  to  podawanie  liczb  zmienno­
              przecinkowych w notacji naukowej, jak '1.0e-34' czy
              '10e100'.  Nie  zgłasza  nadmiaru,  niedomiaru  czy
              błędów konwersji. Wykorzystuje następujący porządek



sierpień 1999                  FSF                              2





SORT(1)             Narzędzia tekstowe GNU 2.0            SORT(1)


              leksykograficzny:

              * linie nie rozpoczynające się liczbami  (wszystkie
              uważane za równe).

              *  wartości  NaN ("Not a Number") w arytmetyce zmi­
              ennoprzecinkowej IEEE w spójnej,  ale  zależnej  od
              architektury komputera kolejności.

              * minus nieskończoność.

              * liczby skończone w kolejności rosnącej (z równymi
              -0 i +0).

              * plus nieskończoność.

       Opcji tej należy używać tylko  wtedy,  gdy  nie  ma  innej
       alternatywy;  jest  znacznie wolniejsza niż -n i przy kon­
       wersji na zmiennoprzecinkowe można utracić informację.

       -i     Ignoruje znaki niedrukowalne (spoza  zakresu  ASCII
              040-176 ósemkowo, włącznie) podczas sortowania.

       -M     Każdy  początkowy łańcuch składający się z dowolnej
              ilości  białych  znaków  plus  trzy  litery  będące
              skrótem  nazwy  miesiąca  jest  zamieniany  na DUŻE
              litery i porównywany w porządku 'JAN' < 'FEB' < ...
              <  'DEC.'  Przy porównywaniu nieprawidłowe nazwy są
              mniejsze  od   poprawnych.    Ustawienie   narodowe
              LC_TIME wyznacza pisownię nazw miesięcy.

       -n     Sortowanie   numeryczne:   każdą  linię  rozpoczyna
              liczba. Składają się na nią opcjonalne białe znaki,
              opcjonalny znak -, oraz zero lub więcej cyfr, które
              mogą  być  oddzielone  separatorami  tysięcy,  plus
              opcjonalnie występujący separator dziesiętny i zero
              lub więcej cyfr dziesiętnych.  Ustawienie  narodowe
              LC_NUMERIC  określa  znak separatora dziesiętnego i
              separatora tysięcy.

              sort -n wykorzystuje coś, co może  być  uważane  za
              niekonwencjonalną   metodę  porównywania  łańcuchów
              reprezentujących liczby zmiennoprzecinkowe. Zamiast
              najpierw  zamieniać  każdy  łańcuch na typ 'double'
              języka C a następnie porównywać ich wartości,  sort
              wyrównuje   znaki  separatora  dziesiętnego  w  dwu
              łańcuchach i porównuje je znak po  znaku.  Jedną  z
              korzyści  z takiego podejścia jest jego szybkość. W
              praktyce jest to o wiele wydajniejsze  niż  wykony­
              wanie dwu odpowiednich konwersji string-double (lub
              nawet  string-integer)  i  następnie   porównywanie
              liczb  podwójnej precyzji. Dodatkowo, nie występuje
              tu towarzysząca utrata dokładności. Konwersja przed
              porównaniem   każdego   łańcucha  na  typ  'double'



sierpień 1999                  FSF                              3





SORT(1)             Narzędzia tekstowe GNU 2.0            SORT(1)


              ograniczałaby  dokładność  do  około  16   cyfr   w
              większości systemów.

              Nie  jest rozpoznawany ani początkowy znak '+', ani
              notacja wykładnicza.  Do porównywania  numerycznego
              takich łańcuchów należy użyć opcji -g.

       -r     Odwraca   rezultat   porównania,  tak  iż  linie  z
              większymi wartościami klucza pojawiają się w wyniku
              wcześniej, a nie później.

       Inne opcje to:

       -o plik-wyj
              Wypisuje  wynik  do  plik-wyj, a nie na standardowe
              wyjście.   Jeśli  plik-wyj  jest  jednym  z  plików
              wejściowych,  sort kopiuje go do pliku tymczasowego
              przed sortowaniem i wypisaniem wyniku do  plik-wyj.

       -t separator
              Używa  znaku  separator jako separatora pól podczas
              szukania  kluczy   sortowania   w   każdej   linii.
              Domyślnie   pola  oddzielone  są  łańcuchem  pustym
              pomiędzy znakami  nie  będącymi  białym  znakiem  i
              białymi  znakami.   To  znaczy,  linię wejścia sort
              rozkłada na pola ' foo' i '  bar'.   Separator  pól
              nie  jest  uważany  za  część  ani  pola,  które go
              poprzedza ani tego, które po nim następuje.

       -u     W przypadku domyślnym lub opcji -m, wypisuje  tylko
              pierwszą  z sekwencji linii porównanych jako równe.
              Dla opcji -c  sprawdza  czy  żadna  para  kolejnych
              linii w wyniku porównania nie jest równa.

       -k poz1[,poz2]
              Zalecana,  POSIX-owa  składnia  określania pól sor­
              towania.  Pole jest częścią linii pomiędzy  poz1  i
              poz2  (lub  końcem  linii,  jeśli  pominięto  poz2)
              włącznie.  Pola  i  pozycje  znaków  numerowane  są
              począwszy  od  1.  Zatem sortowanie według drugiego
              pola  wymagałoby  '-k  2,2'.   Poniżej   znajdziesz
              więcej przykładów.

       -z     Traktuje  wejście  jako  zestaw  linii zakończonych
              bajtem zerowym (znak ASCII NUL (null)) a nie  ASCII
              LF  (koniec  linii).  Opcja ta może być przydatna w
              połączeniu z `perl -0' lub `find -print0' i  `xargs
              -0',  które  robią  to  samo  w  celu  niezawodnego
              zachowania  dowolnych  nazw  ścieżek  (nawet   zaw­
              ierających znaki końca linii).

       +poz1 [-poz2]
              Przestarzała,  tradycyjna opcja określania pól sor­
              towania.  Określa  pole  w  każdej  linii,  którego



sierpień 1999                  FSF                              4





SORT(1)             Narzędzia tekstowe GNU 2.0            SORT(1)


              należy użyć jako klucza sortowanie.  Pole to składa
              się z części linii zaczynającej się na poz1  aż  do
              (ale  nie  włącznie  z)  poz2  (albo do końca linii
              jeśli nie podano  poz2).   Pola  i  pozycje  znaków
              numerowane są począwszy od 0.

       Pozycja  w polu sortowania w opcjach -k i + ma postać f.c,
       gdzie f to numer pola, które ma zostać użyte a c to  numer
       pierwszego znaku od początku pola (dla +poz) albo od końca
       poprzedniego pola  (dla  -poz).   Część  .c  pozycji  może
       zostać   pominięta;  w  tym  przypadku  uważa  się  ją  za
       oznaczającą pierwszy znak pola.  Jeśli  podano  opcję  -b,
       część  .c  określenia pola liczona jest od pierwszego nie­
       pustego znaku pola (dla +poz)  lub  ostatniego  niepustego
       znaku stojącego po poprzednim polu (dla -poz).

       Argument  +poz  lub  -poz  może  także  zawierać dołączoną
       dowolną z liter opcji Mbdfinr, wówczas dla  tego  konkret­
       nego  pola  nie  są  używane globalne opcje porządkowania.
       Opcja -b może być dołączona niezależnie do  jednej  z  lub
       obu  części  +poz  i -poz określenia pola, a jeśli została
       odziedziczona z opcji globalnych,  zostanie  dołączona  do
       obydwu.  Jeśli użyto opcji -n lub -M, co zakłada opcję -b,
       opcja -b stosuje się do zarówno do części +poz jak i  -poz
       określenia  pola.  Klucze mogą się rozciągać na kilka pól.

       Dodatkowo, kiedy GNU sort wywołany został z dokładnie jed­
       nym argumentem, rozpoznawane są następujące opcje:

       --help Wyświetla   informację   o  stosowaniu  programu  i
              dostępnych opcjach, kończy pracę.

       --version
              Wyświetla numer wersji programu i kończy pracę.

ZGODNE Z
       Historyczne (z BSD i System V) implementacje sort  różniły
       się  w interpretacji niektórych opcji, szczególnie -b, -f,
       oraz -n.  GNU sort naśladuje  zachowanie  POSIXowe,  które
       jest zwykle (ale nie zawsze!) podobne do zachowania z Sys­
       tem  V.   Według  POSIX  -n  nie  zakłada  już  -b.    Dla
       spójności, w ten sam sposób zmieniono -M.  Może to wpłynąć
       na znaczenie pozycji znaków w określeniach pól  w  pewnych
       zagmatwanych    przypadkach.    Jeśli   cię   to   gryzie,
       rozwiązaniem jest dodanie wyraźnej opcji -b.

PRZYKŁADY
       A oto nieco przykładów ilustrujących  rozmaite  kombinacje
       opcji.   Do  określania  kluczy  sortowania wykorzystywana
       jest w  nich  POSIX-owa  opcja  -k  zamiast  przestarzałej
       składni +poz1-poz2.

       *    Sortowanie   w   malejącej   (odwrotnej)   kolejności
       numerycznej:



sierpień 1999                  FSF                              5





SORT(1)             Narzędzia tekstowe GNU 2.0            SORT(1)


           sort -nr

       * Sortowanie alfabetyczne, przy  pominięciu  pierwszych  i
       drugich pól. Posługuje się pojedynczym kluczem złożonym ze
       znaków od początku trzeciego pola do końca każdej linii:
           sort -k3

       * Sortowanie numeryczne według drugiego pola  i  rozstrzy­
       ganie przeszkód przez sortowanie alfabetyczne wg trzeciego
       i czwartego znaku piątego  pola.   Znakiem  ograniczającym
       pola jest ':'
           sort -t : -k 2,2n -k 5.3,5.4
       Zauważ,  że w przypadku napisania '-k 2' zamiast '-k 2,2',
       sort wykorzystałby wszystkie znaki począwszy  od  drugiego
       pola,  a  skończywszy  na  końcu linii jako pierwszy klucz
       numeryczny.  W  większości  zastosowań,  traktowanie  jako
       numeryczne  kluczy złożonych z więcej niż jednego pola nie
       daje oczekiwanego wyniku.

       Zauważ też, że do określnika  końca  pola  dla  pierwszego
       klucza został zastosowany modyfikator -n. Byłby równoważny
       podaniu '-k 2n,2' lub '-k 2n,2n'. Wszystkie modyfikatory z
       wyjątkiem  b odnoszą się do odnośnego pola, niezależnie od
       tego czy są dołączone do określenia początku  pola,  końca
       czy obu.

       *  Sortowanie  pliku haseł według piątego pola, ignorowane
       są początkowe białe  znaki.  Sortowanie  linii  z  równymi
       wartościami  piątego  pola według numerycznego identyfika­
       tora użytkownika z pola trzeciego:
           sort -t : -k 5b,5 -k 3,3n /etc/passwd
       Alternatywą  jest  zastosowanie  globalnego   modyfikatora
       numerycznego -n:
           sort -t : -n -k 5b,5 -k 3,3 /etc/passwd

       * Utworzenie pliku znaczników (tags) w kolejności sortowa­
       nia niewrażliwej na wielkość liter:
           find src -type f -print0 | \
                sort -t / -z -f | xargs -0 etags --append
       Użycie w tym przypadku '-print0', '-z' i '-0' oznacza,  że
       ścieżki  zawierające  znaki nowej linii nie będą rozbijane
       przez operację operację sortowania.

       * Na koniec: do zignorowania zarówno  początkowych  jak  i
       końcowych białych znaków można zastosować modyfikator b do
       końcowego określnika pierwszego klucza
           sort -t : -n -k 5b,5b -k 3,3 /etc/passwd
       lub  użyć  globalnego  modyfikatora  -b   zamiast   -n   i
       bezpośredniego n przy określeniu drugiego klucza:
           sort -t : -b -k 5,5 -k 3,3n /etc/passwd

UWAGI
       Różne  znaczenie  numerów pól w zależności od użycia opcji
       -k stwarza zamieszania.  To wszystko wina POSIX!



sierpień 1999                  FSF                              6





SORT(1)             Narzędzia tekstowe GNU 2.0            SORT(1)


ZGŁASZANIE BŁĘDÓW
       Błędy  proszę  zgłaszać,  w  jęz.  ang.,  do   <bug-textu­
       tils@gnu.org>.

COPYRIGHT
       Copyright Š 1999 Free Software Foundation, Inc.
       This  is  free software; see the source for copying condi­
       tions.  There is NO warranty; not even for MERCHANTABILITY
       or FITNESS FOR A PARTICULAR PURPOSE.

ZOBACZ TAKŻE
       uniq(1), comm(1), ptx(1), tsort(1), textutils(1).

OD TŁUMACZA
       Zaktualizowano  i  poszerzono  wg dokumentacji Texinfo dla
       narzędzi tekstowych GNU wersji 2.0.









































sierpień 1999                  FSF                              7