Provided by: konwert_1.8-13_amd64 bug

NAZWA

       trs - filtr zastępujący łańcuchy

UŻYCIE

       trs [-[r]e] 'ZASTĘPUJ_TO TYM [A_TO TYM]...'
       trs [-[r]f] PLIK

OPIS

       Kopiuje  stdin  na stdout zastępując każde wystąpienie danych napisów innymi. Podobnie jak
       tr(1), ale zamienia napisy, a nie tylko pojedyncze znaki.

       Reguły (oddzielone odstępami) mogą być podane bezpośrednio  po  opcji  -e  albo  mogą  być
       przeczytane  z  PLIKU.   Argument  niepoprzedzony przez -e ani -f jest interpretowany jako
       skrypt, jeśli zawiera jakieś odstępy, a jako nazwa pliku, jeśli nie zawiera.

       Komentarze można umieszczać od # do końca linii. Znak # w napisach musi być zapisany  jako
       \#.

       Można  używać  standardowych eskejpów jak w C: \a \b \e \f \n \r \t \v \\ \nnn.  Dodatkowo
       \s oznacza spację, a \! - pusty łańcuch.

       Można określić zbiory dopuszczalnych znaków na danej pozycji pomiędzy  \[  a  ].   Zakresy
       ASCII  w  zbiorach mogą być krótko zapisane jako PIERWSZY-OSTATNI.  Jeśli zbiór składa się
       tylko z pojedynczego zakresu, \[ i \] mogą być pominięte.

       Jeśli część  napisu  do  zastąpienia  jest  ujęta  w  \{...\},  to  tylko  ta  część  jest
       zastępowana. Tekst poza \{...\} pełni rolę warunku: napis jest tłumaczony tylko jeśli jest
       poprzedzony danym tekstem i za nim jest inny.  \{ na początku albo \} na końcu napisu mogą
       być pominięte. Tekst poza \{...\} jest traktowany jako nieprzetłumaczony.

       Przed  początkiem  pliku  i  poza  jego  końcem  są tylko znaki \n.  Na przykład \n\{.\}\n
       znajduje . stojącą samodzielnie w linii, włączając w  to  pierwszą  linię,  albo  ostatnią
       nawet bez znacznika 0f[R].

       Fragment  postaci \?x=N, gdzie x jest literą A-Za-z, a N jest cyfrą 0-9, zawarty w napisie
       docelowym przypisuje zmiennej x wartość N, kiedy dana reguła jest użyta. Taki  fragment  w
       napisie  źródłowym powoduje, że dana reguła jest brana pod uwagę tylko jeśli ta zmienna ma
       taką wartość. Początkowo wszystkie zmienne mają wartość 0.  Może być wiele  przypisań  lub
       warunków  w  jednej  regule  - warunki muszą być wtedy wszystkie prawdziwe i wykonywane są
       wszystkie przypisania.

   OPCJE
       -e     Podaje reguły konwersji bezpośrednio w linii poleceń.

       -f     Pobiera je z danego pliku.

       -r     Odwraca każdą regułę. Dotyczy to tylko następnej opcji -e albo -f.   Oczywiście  to
              nie   musi   dać   odwrotnego   tłumaczenia!  Każda  reguła  zawierająca  któreś  z
              \{\}\[\]\{\}\- jest uwzględniana tylko  w  jednym  kierunku.  Można  wymusić,  żeby
              dowolna  reguła  była  uwzględniana  tylko w jednym kierunku, umieszczając napis do
              przetłumaczenia w \{...\}.

       --help wyświetla opis i wychodzi

       --version
              wyświetla informację o wersji i wychodzi

       Może być wiele opcji -e albo -f.  Wszystkie reguły są  wtedy  ładowane  razem,  przy  czym
       wcześniejsze mają pierwszeństwo.

PRZYKŁAD

       $ echo Leeloo |trs -e 'el n e i i aqq o\}\n x o u'
       Linux

CZYM SIĘ TO RÓŻNI OD seda

       Podstawowa  różnica  pomiędzy  trsem  a  sed  's///g;  ...'  (wyłączając  sedowe wyrażenia
       regularne) jest taka, że sed patrzy na każdą regułę w kolejności ich podania i stosuje  ją
       do całej linii filtrowanego pliku, podczas gdy trs bada każdą pozycję i próbuje wszystkich
       reguł na tej pozycji najpierw. W sedzie każda reguła  dostaje  tekst  wyprodukowany  przez
       poprzednią,  a w trsie każdy kawałek tekstu jest tłumaczony najwyżej raz (jeśli więcej niż
       jedna reguła pasuje na  danej  pozycji,  reguła  wymieniona  wcześniej  wygrywa).  Właśnie
       dlatego  sed  niezbyt nadaje się do tłumaczenia między zestawami znaków. Z drugiej strony,
       tr tłumaczy tylko pojedyncze bajty, więc nie może  być  użyty  do  konwersji  Unikodu  ani
       TeXowych / SGMLowych sposobów zapisu rozszerzonych znaków.

       Inny przykład:
       $ echo 642 |trs -e '4 7 72 66 64 4'
       42
       $ echo 642 |sed 's/4/7/g; s/72/66/g; s/64/4/g'
       666

       Napis  do  zamiany  może  być  pusty;  musi  wtedy  być  coś poza \{\}.  W tym szczególnym
       przypadku tylko jedna taka reguła  tworząca  z  niczego  może  być  zastosowana  na  danej
       pozycji.  Na  przykład  \}\x80\-\xFF  @ poprzedza każdy znak z ustawionym najwyższym bitem
       przez @.  Reguła postaci coś\{ tam nie działa na końcu pliku.

ZOBACZ TEŻ

       tr(1), konwert(1)

COPYRIGHT

       Konwert jest pakietem służącym do konwersji między różnymi kodowaniami znaków.

       Copyright (c) 1998 Marcin 'Qrczak' Kowalczyk

       Niniejszy program jest oprogramowaniem wolnodostępnym; możesz go rozprowadzać dalej  i/lub
       modyfikować  na  warunkach  Powszechnej  Licencji  Publicznej  GNU, wydanej przez Fundację
       Wolnodostępnego  Oprogramowania  -  według  wersji  2-giej  tej  Licencji  lub  którejś  z
       późniejszych wersji.

       Niniejszy  program  rozpowszechniany  jest z nadzieją, iż będzie on użyteczny - jednak BEZ
       JAKIEJKOLWIEK  GWARANCJI,  nawet   domyślnej   gwarancji   PRZYDATNOŚCI   HANDLOWEJ   albo
       PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna
       Licencja Publiczna GNU.

       Z pewnością wraz z niniejszym programem otrzymałeś  też  egzemplarz  Powszechnej  Licencji
       Publicznej  GNU;  jeśli  nie  - napisz do Free Software Foundation, Inc., 59 Temple Place,
       Suite 330, Boston, MA  02111-1307  USA

AUTOR

        __("<   Marcin Kowalczyk * qrczak@knm.org.pl http://qrczak.home.ml.org/
        \__/       GCS/M d- s+:-- a21 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++
         ^^                W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
       QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-