tr

Autres langues

Langue: pl

Autres versions - même langue

Version: FSF (openSuse - 09/10/07)

Section: 1 (Commandes utilisateur)

NAZWA

tr - przet³umacz lub usuñ znaki

SK£ADNIA

tr
[-cst] [--complement] [--squeeze-repeats]
[--truncate-set1] ³añcuch1 ³añcuch2
tr
[-cs] [--complement] [--squeeze-repeats] ³añcuch1
tr
[-cd] [--complement] [--delete] ³añcuch1
tr
[-cds] [--complement] [--delete] [--squeeze-repeats]
³añcuch1 ³añcuch2
tr
[--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 tr
lub
info tr.

Ta strona podrêcznika opisuje polecenie tr w wersji GNU. tr kopiuje standardowe wej¶cie na standardowe wyj¶cie, dokonuj±c jednej z poni¿szych operacji:

* przek³ad, opcjonalnie ¶ci¶niêcie powtórzonych znaków w wyniku
* ¶ci¶niêcie powtórzonych znaków
* usuniêcie znaków
* usuniêcie znaków, potem ¶ci¶niêcie powtórzonych znaków w wyniku

Argumenty ³añcuch1 i (je¶li podany) ³añcuch2 definiuj± uporz±dkowane zbiory znaków, poni¿ej nazwane zb1 i zb2. Owe zbiory to znaki z wej¶cia, na których dzia³a tr. Opcja --complement (-c) zastêpuje zb1 jego dope³nieniem (wszystkimi znakami, których nie ma w zb1).

OKRE¦LANIE ZBIORÓW ZNAKÓW

Format argumentów ³añcuch1 i ³añcuch2 przypomina format wyra¿eñ regularnych; jednakowo¿, nie s± to wyra¿enia regularne, lecz tylko listy znaków. Wiêkszo¶æ znaków w tych ³añcuchach reprezentuje po prostu same siebie, ale ³añcuchy mog± te¿, dla wygody, zawieraæ wyliczone poni¿ej skróty. Niektórych z nich mo¿na u¿yæ tylko w ³añcuch1 lub ³añcuch2, jak zaznaczono poni¿ej.

Odwrotny uko¶nik, po którym nie nastêpuje znak spo¶ród wymienionych poni¿ej powoduje komunikat o b³êdzie.

\a
Control-G.
\b
Control-H.
\f
Control-L.
\n
Control-J.
\r
Control-M.
\t
Control-I.
\v
Control-K.
\ooo
Znak o warto¶ci podanej przez ooo, czyli od 1 do 3 cyfr ósemkowych.
\\
Odwrotny uko¶nik.

Zakresy: notacja `m-n' interpretowana jest jako wszystkie znaki od m do n, w porz±dku rosn±cym. m powinno wystêpowaæ w porz±dku sortowania przed n; je¶li tak nie jest, nastêpuje b³±d. Dla przyk³adu, `0-9' jest tym samym co `0123456789'. Chocia¿ GNU tr nie obs³uguje sk³adni System V u¿ywaj±cej nawiasów kwadratowych do zamykania zakresów, t³umaczenia okre¶lone w tym formacie nadal bêd± dzia³aæ, o ile nawiasy w ³añcuch1 odpowiadaj± identycznym nawiasom w ³añcuch2.

Powtórzone znaki: notacja `[c*n]' w ³añcuch2 interpretowana jest jako n kopii znaku c. Tak wiêc `[y*6]' jest tym samym co `yyyyyy'. Notacja `[c*]' w ³añcuch2 rozszerzana jest na tyle kopii c, ile potrzeba na to aby zb2 by³ tak d³ugi jak zb1. Je¶li n zaczyna siê od 0, jest reprezentowane ósemkowo, w przeciwnym razie dziesiêtnie.

Klasy znaków: notacji `[:nazwa-klasy:]' odpowiadaj± wszystkie znaki z (predefiniowanej) klasy zwanej nazwa-klasy. Znaki nie s± rozszerzane w jakim¶ szczególnym porz±dku, z wyj±tkiem klas 'upper' i Gdy podano zarówno opcjê --delete (-d) jak i --squeeze-repeats (-s) w ³añcuch2 mo¿na u¿yæ ka¿dej klasy znaków. W przeciwnym razie w ³añcuch2 akceptowane s± tylko klasy znaków 'upper' i 'lower', i to tylko wtedy, kiedy odpowiednie klasy 'upper' i 'lower' zosta³y okre¶lone na tej samej pozycji wzglêdnej w ³añcuch1. Takie postêpowanie okre¶la konwersjê wielko¶ci liter. Nazwy klas podano ni¿ej; je¶li poda siê nieprawid³ow± nazwê klasy, powstaje b³±d.

alnum
Litery i cyfry.
alpha
Litery.
blank
Poziomy bia³y znak.
cntrl
Znaki steruj±ce.
digit
Cyfry.
graph
Znaki drukowalne, z wy³±czeniem spacji.
lower
Ma³e litery.
print
Znaki drukowalne, ³±cznie ze spacj±.
punct
Znaki interpunkcyjne.
space
Pionowy lub poziomy bia³y znak (odstêp).
upper
Du¿e litery.
xdigit
Cyfry szesnastkowe.

Klasy równowa¿ne: sk³adnia `[=c=]' oznacza wszystkie znaki równowa¿ne c, bez szczególnej kolejno¶ci. Klasy równowa¿ne to niedawny wynalazek pomy¶lany dla obs³ugi alfabetów nie-angielskich. Jednak nie istnieje, zdaje siê, standardowa metoda ich zdefiniowania lub okre¶lenia ich zawarto¶ci. Z tego powodu nie s± one w pe³ni zaimplementowane w GNU tr; klasa równowa¿na ka¿dego znaku sk³ada siê tylko z tego znaku, co obecnie czyni je konstrukcj± bezu¿yteczn±.

T£UMACZENIE

tr dokonuje t³umaczenia gdy podane s± zarówno ³añcuch1 jak i ³añcuch2, a nie podano opcji --delete (-d). tr t³umaczy ka¿dy znak swojego wej¶cia znajduj±cy siê w zb1 na odpowiedni znak w zb2. Znaki, których nie ma w zb1 przepuszczane s± w postaci niezmienionej. Gdy jaki¶ znak pojawia siê wiêcej ni¿ jeden raz w zb1, a odpowiadaj±ce mu znaki w zb2 nie s± takie same, u¿ywany jest tylko ostatni z nich. Dla przyk³adu, poni¿sze dwa polecenia s± równowa¿ne:


tr aaa xyz

tr a z

Typowym zastosowaniem tr jest konwersja ma³ych liter na du¿e. Mo¿na to zrobiæ na wiele sposobów. Oto trzy z nich:

tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ

tr a-z A-Z

tr '[:lower:]' '[:upper:]'

Gdy tr dokonuje t³umaczenia, zb1 i zb2 powinny normalnie byæ tej samej d³ugo¶ci. Je¶li zb1 jest krótszy od zb2, dodatkowe znaki na koñcu zb2 s± ignorowane.

Z drugiej strony, podanie zb1 d³u¿szego od zb2 nie jest przewidziane: POSIX.2 mówi, ¿e rezultat jest niezdefiniowany. W takiej sytuacji tr BSD wyd³u¿a zb2 do d³ugo¶ci zb1 powtarzaj±c ostatni znak zb2 tyle razy ile potrzeba. tr z System V obcina zb1 do d³ugo¶ci zb2.

Domy¶lnie, GNU tr za³atwia ten przypadek tak jak robi to tr z BSD. Gdy podano opcjê --truncate-set1 (-t) GNU tr obs³uguje ten przypadek tak jak wersja z System V. Opcja ta jest ignorowana dla operacji innych ni¿ t³umaczenie.

Zachowywanie siê jak tr z System V w tym przypadku psuje stosunkowo czêsty idiom z BSD:


tr -cs A-Za-z0-9 '\012'

poniewa¿ konwertuje na znaki nowej linii tylko bajty zerowe (pierwszy element dope³nienia zb1), a nie wszystkie znaki nie-alfanumeryczne.

¦CISKANIE POWTÓRZEÑ I USUWANIE

Je¶li podano tylko opcjê --delete (-d), tr usuwa z wej¶cia wszystkie znaki znajduj±ce siê w zb1.

Je¶li podano tylko opcjê --squeeze-repeats (-s), tr zastêpuje w wej¶ciu ka¿d± sekwencjê powtórzonych znaków znajduj±cych siê w zb1 pojedynczym wyst±pieniem tego¿ znaku.

Je¶li podano zarówno opcjê --delete jak i --squeeze-repeats, tr najpierw wykonuje wszelkie usuniêcia u¿ywaj±c zb1, potem ¶ciska powtórzenia pozosta³ych znaków u¿ywaj±c zb2.

Opcji --squeeze-repeats mo¿na tak¿e u¿ywaæ podczas t³umaczenia. Wówczas tr najpierw dokonuje t³umaczenia, potem ¶ciska powtórzenia pozosta³ych znaków u¿ywaj±c zb2.

Oto kilka przyk³adów ilustruj±cych ró¿ne kombinacje opcji:

Usuwanie wszystkich bajtów zerowych:

tr -d '\000'

Umieszczenie ka¿dego s³owa w osobnej linii. Konwertuje to wszystkie znaki nie-alfanumeryczne na znaki nowej linii, potem ¶ciska ka¿dy ³añcuch powtórzonych nowych linii w pojedyncz± now± liniê:

tr -cs '[a-zA-Z0-9]' '[\n*]'

Konwersja ka¿dej sekwencji powtórzonych nowych linii w pojedyncz± now± liniê:

tr -s '\n'

Wyszukiwanie w dokumencie podwójnych wyst±pieñ s³ów. Na przyk³ad, zdarza siê pisanie "do do", powtórzonych s³ów rozdzielonych znakiem nowej linii. Poni¿szy skrypt pow³oki Bourne'a najpierw zamienia ka¿d± sekwencjê znaków interpunkcyjnych i znaków pustych na pojedynczy znak nowej linii. Powoduje to umieszczenie ka¿dego "s³owa" w osobnej linii. Nastêpnie zamienia wszystkie du¿e litery na ma³e, i, na koniec, uruchamia `uniq' z opcj± `-d', co powoduje wypisanie tylko s³ów, które by³y powtórzone obok siebie.


#!/bin/sh

cat "$@" \

   | tr -s '[:punct:][:blank:]' ' \

   | tr '[:upper:]' '[:lower:]' \

   | uniq -d

GNU tr akceptuje tak¿e nastêpuj±ce opcje, w kombinacji z innymi:

--help
Wy¶wietla informacjê o stosowaniu programu i dostêpnych opcjach, koñczy pracê.
--version
Wy¶wietla numer wersji programu i koñczy pracê.

KOMUNIKATY OSTRZEGAWCZE

Ustawienie zmiennej ¶rodowiskowej POSIXLY_CORRECT wy³±cza niektóre ostrze¿enia i komunikaty o b³êdach, dla ¶cis³ej zgodno¶ci z POSIX.2. Komunikaty te wystêpuj± normalnie w nastêpuj±cych okoliczno¶ciach:

1. Gdy podano opcjê --delete, ale nie --squeeze-repeats, a podano ³añcuch2, GNU tr domy¶lnie wypisuje komunikat o u¿yciu i koñczy pracê, poniewa¿ ³añcuch2 nie zosta³by u¿yty. Specyfikacja POSIX mówi, ¿e ³añcuch2 nale¿y w tej sytuacji zignorowaæ. Jednak milcz±ce ignorowanie argumentów to z³y pomys³.

2. Gdy podano niejednoznaczne specjalne sekwencje ósemkowe. Dla przyk³adu, \400 to faktycznie \40 plus cyfra 0, poniewa¿ ósemkowa warto¶æ 400 nie mie¶ci siê w pojedynczym bajcie.

Zauwa¿ ¿e GNU tr nie zapewnia pe³nej zgodno¶ci z BSD lub System V. Dla przyk³adu, nie istnieje opcja wy³±czaj±ca interpretacjê konstrukcji POSIX-owych [:alpha:], [=c=], i [c*10]. GNU tr nie usuwa tak¿e automatycznie bajtów zerowych, w odró¿nieniu od tradycyjnych wersji UNIXowych, w których nie ma sposobu zachowania bajtów zerowych.

ZG£ASZANIE B£ÊDÓW

B³êdy proszê zg³aszaæ, w jêz. ang., do <bug-textutils@gnu.org>. 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

expand(1), unexpand(1), textutils(1).

OD T£UMACZA

Zaktualizowano i poszerzono wg dokumentacji Texinfo dla narzêdzi tekstowych GNU wersji 2.0.