tr

Tartalom

 

Adatok

Licenc: GNU GPL v3+
Verziószám: (GNU coreutils) 8.30
Fejlesztő/tulajdonos: Free Software Foundation, Inc.

Rövid leírás:

A tr linux parancs manual oldala és súgója. A parancs segítségével a beadott karakterláncokban lecserélhetők, tömöríthetők, vagy törölhetők a karakterek.

 

 

Man oldal kimenet

man tr
TR(1)                              General Commands Manual                             TR(1)

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)

 

 

Súgó kimenet

tr --help
Használat: tr [KAPCSOLÓ]… HALMAZ1 [HALMAZ2]
Karakterek fordítása, összenyomása és/vagy törlése a szabványos bemenetről
és kiírás a szabványos kimenetre.

  -c, -C, --complement    a HALMAZ1 komplemensének használata
  -d, --delete            a HALMAZ1 karaktereinek törlése, nincs fordítás
  -s, --squeeze-repeats   az utoljára megadott HALMAZBAN felsorolt bemeneti
                            karakter ismétlődő sorozatainak helyettesítése a
                            karakter egyetlen előfordulásával
  -t, --truncate-set1     a HALMAZ1 csonkítása a HALMAZ2 hosszára
      --help     ezen súgó megjelenítése és kilépés
      --version  verzióinformációk megjelenítése és kilépés

A HALMAZOK karakterláncokként vannak meghatározva. A legtöbb saját magát
képviseli. Az értelmezett sorozatok:

  \NNN    az NNN oktális értékű karakter (1-3 számjegy)
  \\      fordított osztásjel
  \a      riadó (BEL)
  \b      visszaper
  \f      lapdobás
  \n      új sor
  \r      kocsivissza
  \t      vízszintes tab
  \v      függőleges tab
  KAR1-KAR2       az összes karakter KAR1 és KAR2 között növekvő sorrendben
  [KAR*]          a HALMAZ2-ben, a KAR másolatai a HALMAZ1 hosszáig
  [KAR*ISMÉTLÉS]  a KAR ISMÉTLÉS darab másolata, az ISMÉTLÉS oktális, ha 0-val
                    kezdődik
  [:alnum:]       az összes betű és számjegy
  [:alpha:]       az összes betű
  [:blank:]       az összes vízszintes üreshely
  [:cntrl:]       az összes vezérlőkarakter
  [:digit:]       az összes számjegy
  [:graph:]       az összes nyomtatható karakter, kivéve a szóközt
  [:lower:]       az összes kisbetű
  [:print:]       az összes nyomtatható karakter, beleértve a szóközt
  [:punct:]       az összes központozó karakter
  [:space:]       az összes vízszintes vagy függőleges üreshely
  [:upper:]       az összes nagybetű
  [:xdigit:]      az összes hexadecimális számjegy
  [=KAR=]         az összes karakter, amely azonos a KAR karakterrel

A fordítás akkor következik be, ha a -d nincs megadva, és a HALMAZ1 és HALMAZ2
is jelen van. A -t csak fordításkor használható. A HALMAZ2 szükség esetén az
utolsó karakterének ismétlésével kiterjesztésre kerül a HALMAZ1 hosszára.
A HALMAZ2 fölösleges karakterei figyelmen kívül maradnak. Csak a [:lower:]
és [:upper:] növekvő sorrendű feloldása garantált; a HALMAZ2-ben fordításkor
csak párban használhatók kis- és nagybetűk átalakításának megadásához.
A -s az utoljára megadott HALMAZT használja, és fordítás vagy törlés után
következik be.

A(z) GNU coreutils online súgója: <https://www.gnu.org/software/coreutils/>
A(z) tr fordítási hibái a <https://translationproject.org/team/hu.html>
címen jelenthetők.
Teljes dokumentáció itt: <https://www.gnu.org/software/coreutils/tr>
vagy helyileg elérhető: info '(coreutils) tr invocation'

 

Kapcsolódó tartalom

  •  

 

Címkék