Rechercher une page de manuel
sort
Langue: pl
Version: FSF (openSuse - 09/10/07)
Section: 1 (Commandes utilisateur)
NAZWA
sort - posortuj linie plików tekstowychSK£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
- 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.4Zauwa¿, ¿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/passwdAlternatyw± 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 --appendU¿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/passwdlub 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 © 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.Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre