Provided by: manpages-pl_20051117-1_all bug

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
       standardowe 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  indywidualnie.   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 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 tymczasowe, zamiast domyślnego
       /tmp.   Opcja  -T  kat-tymcz  jest  jeszcze  jednym  sposobem  wybrania
       katalogu   dla   plików   tymczasowych;   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ęść konkretnego pola kluczowego.  Jeśli
       nie podano żadnego pola  kluczowego,  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 zmiennoprzecinkowych 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 leksykograficzny:

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

              * wartości NaN ("Not a Number") w arytmetyce zmiennoprzecinkowej
              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 konwersji 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ż wykonywanie 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' 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  sortowania.   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 zawierających znaki końca  linii).

       +poz1 [-poz2]
              Przestarzała,   tradycyjna   opcja  określania  pól  sortowania.
              Określa pole w każdej linii, którego  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 niepustego 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  konkretnego  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   jednym
       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 System 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:
           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 rozstrzyganie 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 identyfikatora 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  sortowania
       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!

ZGŁASZANIE BŁĘDÓW

       Błędy proszę zgłaszać, w jęz. ang., do <bug-textutils@gnu.org>.

COPYRIGHT

       Copyright (C) 1999 Free Software Foundation, Inc.
       This is free software; see the source for copying conditions.  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.