| TRS(1) | Podr?cznik u?ytkownika Linuxa | TRS(1) |
NAZWA
trs - filtr zast?puj?cy ?a?cuchy
U?YCIE
trs [-[r]e] 'ZAST?PUJ_TOTYM [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 \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 . Na przyk?ad n{.} znajduje . stoj?c? samodzielnie w linii, w??czaj?c w to pierwsz? lini?, albo ostatni? nawet bez znacznika .
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 * [email protected] 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->+ tQRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
| 17 Jul 1998 | Konwert |