Provided by: manpages-pl_20060617-2_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 ' foo bar', 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.