Provided by: konwert_1.8-15_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-
Konwert                                            17 Jul 1998                                            TRS(1)