Provided by: manpages-hu_20010119-6_all bug

NÉV

       tr - karakterek lecserélése, tömörítése és/vagy törlése

ÁTTEKINTÉS

       tr [-cdst] [--complement] [--delete] [--squeeze-repeats] [--truncate-set1] string1 [string2]

       tr [--help] [--version]

LEÍRÁS

       tr átmásolja a szabványos bemenetet a szabványos kimenetre végrehajtva egyet a következő feladatok közül:

               cserél, és választhatóan tömöríti az eredményben az ismétlődő karaktereket
               tömöríti az ismétlődő karaktereket
               karaktereket töröl
               karaktereket töröl, majd tömöríti az eredményben az ismétlődő karaktereket.

       A  string1  és  (ha megadott) a string2 argumentumok egy rendezett karakterhalmazt határoznak meg, melyre
       lejebb SET1 és SET2-ként hivatkozunk.  Ezek a halmazok azok a karakterei  a  bemenetnek,  melyeken  a  tr
       működni fog. A --complement (-c) opció kicseréli a SET1-et az ő komplementerével (az összes karakter, ami
       nincs a SET1-ben).

OPCIÓK

       -c, --complement
              Kicseréli a SET1-et az ő komplementerével (az összes karakter, ami nincs a SET1-ben).

       -d, --delete
              Törli a bejövő karakterek közül azt, amelyik benne van a SET1-ben, nincs cserélés.

       -s, --squeeze-repeats
              Karaktersorozatot cserél ki egy karakterrel, miután elvégezte a cserélést vagy a törlést. Lecserél
              minden ismétlődő karaktersorozatot, ami benne van a SET1-ben, a karakter egyszeri előfordulásával.

       -t, --truncate-set1
              Mielőtt belekezdene a cserélésbe, először megcsonkítja a SET1-et a SET2 méretére.

       --help Használati  útmutatót ír a szabványos kimenetre, majd kilép.

       --version
               A program verziójáról ír ki információt a  szabványos kimenetre, majd kilép.

KARAKTERHALMAZOK RÉSZLETEZÉSE

       A  string1  és  string2  argumentumok  formátuma  hasonlít a reguláris kifejezések formátumára; habár nem
       reguláris kifejezések, csak karakterlisták.  A legtöbb karakter saját magát jelöli ezekben a  füzérekben,
       de  a  füzér  tartalmazhat  lejebb  felsorolt rövidítéseket a kényelem kedvéért. Néhány ezek közül csak a
       string1-ben vagy a string2-ben használható, lásd lejebb.

   Backslash szekvenciák
       Backslash után egy az alábbiakban fel nem sorolt karaktert írva hibaüzenetet kapunk.

              \a     Control-G.

              \b     Control-H.

              \f     Control-L.

              \n     Control-J.

              \r     Control-M.

              \t     Control-I.

              \v     Control-K.

              \OOO   Az OOO értékű karakter, ahol az OOO legfeljebb 3 oktális számjegy.

              \\     Egy backslash.

   Tartományok
       A `m-n' jelölés feloldása az m-től az n-ig terjedő összes karakter növekvő sorrendben. m-nek n előtt kell
       elhelyezkednie, különben hibát eredményez. Például a `0-9' megfelel a `0123456789'-nak.  Habár a  GNU  tr
       nem  támogatja  a  System  V szintaxist, ami szögletes zárójeleket használ a tartományok közrefogására, a
       cserélés, ami ebben a formátumban  lett  megadva  működni  fog,  amennyiben  a  zárójelek  a  string1-ben
       összhangban vannak a string2-ben lévőkkel.

   Ismétlődő karakterek
       A  `[c*n]'  jelölés  a  string2-ben  a  c  karakter  n-szeri ismétlését jelenti. Így a `[y*6]' megfelel a
       `yyyyyy'-nak. A `[c*]' jelölés a string2-ben megfelel  a  c  karakter  annyiszoros  másolatának,  ahányra
       szükség  van  ahhoz,  hogy  a  SET2  a  SET1-gyel azonos hosszúságú legyen. Ha az n 0-val kezdődik, akkor
       oktálisan értelmezi, egyébként decimálisan.

   Karakter osztályok
       A `[:class-name:]' jelölés feloldása az összes  class-name  (előre  definiált)  osztálybeli  karakter.  A
       kifejtett  karaktereknek  nincsen  pontos  sorrendje,  kivéve  az  `upper' és `lower' osztályokat, melyek
       növekvő sorrendben fejtődnek ki.  Amennyiben a --delete (-d) és --squeeze-repeats (-s) opciók mindegyikét
       megadta, bármelyik karakterosztály használható a string2-ben. Egyébként csak a `lower' és `upper'  adható
       meg  a  string2-ben,  és csak akkor, ha a megfelelő karakterosztályokat (`upper' és `lower', külön-külön)
       ugyanazon a relatív  helyen  adták  meg  a  string1-ben.  Ez  kisbetű-nagybetű  átalakítást  hajt  végre.
       Érvénytelen osztálynév hibát eredményez. Az alábbi osztálynevek léteznek:

              alnum  Betűk és számok.

              alpha  Betűk.

              blank  Vízszintes fehérszóközök.

              cntrl  Vezérlő karakterek.

              digit  Számok.

              graph  Nyomtatható karakterek, a szóközt kivéve.

              lower  Kisbetűk.

              print  Nyomtatható karakterek, a szóközzel együtt.

              punct  Írásjelek.

              space  Vízszintes vagy függőleges fehérszóközök.

              upper  Nagybetűk.

              xdigit Hexadecimális számok.

   Ekvivalencia osztályok
       A  `[=c=]'  szintaxis feloldása az összes karakternek, ami egyenértékű a c karakterrel, nem meghatározott
       sorrendben. Az ekvivalencia osztály  egy  újkeletű  talalmány,  ami  a  nem  angol  ábécéket  szándékozik
       támogatni. Viszont úgy látszik, hogy nincs irányadó módja annak, hogyan definiáljuk vagy határozzuk meg a
       tartalmukat.  Emiatt  nem megvalósított ez a GNU tr-ben; minden karakter ekvivalencia osztálya csak saját
       magából áll, ami jelenleg hasznavehetetlenné teszi ezt a lehetőséget.

CSERÉLÉS

       A tr cserélést végez, ha a string1 és a string2 is megadásra került és a --delete  (-d)  opció  nem  lett
       megadva.  A tr lecseréli a bemenetének összes karakterét, ami benne van a SET1-ben, a SET2 beli megfelelő
       karakterre. A karakterek, melyek nem  szerepelnek  a  SET1-ben  változatlanul  maradnak.  Amennyiben  egy
       karakter  többször  is előfordul a SET1-ben és az összes megfelelő karakter nem ugyanaz, akkor az utolsót
       veszi csak figyelembe. Például az alábbi két parancs azonos:

              tr aaa xyz
              tr a z

       Egy gyakori alkalmazása a tr parancsnak a kisbetűk nagybetűvé alakítása. Ez megoldható  több  módon.  Itt
       van közüllük három:
              tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
              tr a-z A-Z
              tr '[:lower:]' '[:upper:]'

       Amikor  a  tr  cserélést hajt végre, a SET1-nek és a SET2-nek azonos hosszúságúnak kell lennie. Ha a SET1
       rövidebb a SET2-nél, a felesleges karaktereket a SET2 végéről figyelmen kívül hagyja.

       Másrészt, ha a SET1 hosszabb a SET2-nél, akkor nem lesz hordozható a kód; POSIX.2 szerint az eredmény nem
       meghatározott. Ebben az esetben a BSD tr kibővíti a SET1-t a SET2 hosszára  a  SET2  utolsó  karakterének
       megfelelő számú ismétlésével. A System V tr levágja a SET1-et a SET1 hosszára.

       Alapértelmezés  szerint  a  GNU  tr ezt az esetet a BSD tr-jéhez hasonlóan csinálja. Ha a --truncate-set1
       (-t) opció megadásra került, a GNU tr a System V tr-jéhez hasonlóan csinálja.  Ezt  az  opciót  figyelmen
       kívül hagyja a cserélési eljáráson kívül.

       A System V tr ebben az esetben megszakítja a relatív gyakori BSD stílust:
              tr -cs A-Za-z0-9 '\012'
       mert ez csak a nulla bájtot fogja átalakítani (az első tagját a SET1 komplementerének), ahelyett, hogy az
       összes nem alfanumerikus karaktert lecserélné újsor karakterre.

   ISMÉTLŐDÉSEK ÖSSZEHÚZÁSA ÉS TÖRLÉS
       Amennyiben csak a --delete (-d) opció került megadásra, a tr eltávolít minden karaktert, amely a SET1-ben
       szerepel.

       Amennyiben  csak  a  --squeeze-repeats  (-s)opció  került  megadásra,  a tr lecseréli az összes bemeneti,
       SET1-ben lévő karaktersorozatot az egyszeri előfordulásával.

       Amennyiben a --delete és a --squeeze-repeats opció is megadásra került, a tr először elvégzi a törlést  a
       SET1 felhasználásával, majd az összehúzást a maradék karaktereken a SET2 felhasználásával.

       A  --squeeze-repeats  opció  a  cseréléssel  együtt  is használható, ezesetben a tr először végrehajtja a
       cserét, majd összevonja az ismétlődő karaktereket a SET2 felhasználásával.

       Itt van néhány példa az különböző opciók variálásának bemutatására:

        Az összes nulla bájt eltávolítása:

              tr -d '\000'

        Az összes szó különböző sorokba  bontása.  Az  összes  nem  alfanumerikus  karaktert  újsor  karakterre
       cseréli, majd az ismétlődő újsor karaktereket összevonja egyetlenné:

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

        Az összes ismétlődő újsor karaktert egyetlenné vonja össze:

              tr -s '\n'

         A  szavak  dupla  előfordulásának  megtalálása. Például az emberek gyakran írják a "the the" ismétlődő
       szavakat egy újsor karakterrel elválasztva. Az  alábbi  bourne  shell  script  először  átkonvertálja  az
       írásjelek  és  a  szóközök  sorozatát egy újsor karakterré, amitől minden "szó" külön sorba kerül. Ezután
       átírja az összes nagybetűt kicsire, és végül elindítja a uniq(1) parancsot a -d opcióval,  hogy  csak  az
       ismétlődő szavakat írja ki.

              #!/bin/sh
              cat "$@" \
              | tr -s '[:punct:][:blank:]' '\n' \
              | tr '[:upper:]' '[:lower:]' \
              | uniq -d

POSIX KOMPATIBILITÁS

       A  POSIXLY_CORRECT környezeti változó beállításával kikapcsolhatunk számos figyelmeztető- és hibaüzenetet
       a szigorúbb POSIX.2  megfelelés  érdekében.   Az  üzenetek  normálisan  a  következő  körülmények  között
       fordulnak elő:

              1.  Amikor a --delete opciót megadtuk, de a --squeeze-repeats-t nem, és a string2-t is megadtuk, a
              GNU  tr  alapértelmezés  szerint  kiír  egy használati üzenetet és kilép, mert a string2 nem kerül
              felhasználásra. A POSIX specifikáció szerint a string2-t figyelmen  kívül  kell  hagyni  ebben  az
              esetben. Csendben figyelmen kívül hagyni egy argumentumot rossz ötlet.

              2.  Amikor egy félreérthető oktális kód kerül megadásra. Például a \400 egy \40 majd egy 0, mert a
              400 oktális szám nem fér bele egy bájtba.

       Fontos,  hogy a GNU tr nem teljesen kompatibilis a BSD vagy a System V változattal. Például nincsen opció
       a [:alpha:], [=c=] és [c*10] POSIX értelmezések kikapcsolásához. A GNU tr a  nulla  karaktert  sem  törli
       automatikusan,  ellentétben  a  tradícionális  UNIX variánsokkal, amelyeknél nincs lehetőség a nulla bájt
       megvédésére.

MEGJEGYZÉS

       Hibajelentéseket a bug-textutils@gnu.org címre küldd.
       Ezt a kézikönyv lapot Ragnar Hojland Espinosa <ragnar@macula.net> írta.

MAGYAR FORDÍTÁS

       Nagy Ernő <ned@elte.hu>

GNU textutils 2.0                                15 August 1999                                            TR(1)