Tr (Unix)

De la Viquipèdia, l'enciclopèdia lliure
Tr
Modifica el valor a Wikidata
Tipusutilitat UNIX Modifica el valor a Wikidata
Part deGNU Core Utilities Modifica el valor a Wikidata

tr (forma abreujada de l'anglès translate o transliterate) és una comanda dels sistemes operatius Unix i Linux.

El programa llegeix de l'entrada estàndard i escriu a la sortida estàndard, pren dos paràmetres que indiquen quines substitucions cal fer en el text. El primer paràmetre indica quins caràcters cal substituir i el segon per quins caràcters seran substituïts.

Exemples[modifica]

Fer una transformació del text "juli cesar" avançant les lletres de l'alfabet 7 posicions (això correspon al xifratge de Cèsar):

$ echo juli cesar | tr abcdefghijklmnopqrstuvwxyz hijklmnopqrstuvwxyzabcdefg
qbsp jlzhy

Si la versió de tr satisfà els requeriments de POSIX, la transformació es pot fer com segueix: a-z h-za-g. Això és,

$ echo juli cesar | tr a-z h-za-g
qbsp jlzhy

El següent exemple només desplaça un caràcter:

$ echo "ibm 9000" >fitxerAuxiliar.txt
$ tr a-z za-y <fitxerAuxiliar.txt
hal 9000

En versions antigues de tr (que no satisfan els requeriments de POSIX), els caràcters s'han de posar entre claudàtors:

$ tr "[a-z]" "z[a-y]" <fitxerAuxiliar.txt

Per transformar un fitxer MSDOS a un fitxer Linux es pot fer:

$ tr -d '\15\32' < dosfile.txt > unixfile.txt

Aquí, -d correspon a eliminar sense fer cap traducció.

Per traduir "\n" a "\r\n":

$ tr -A '\12' '\15\12' < input1 > output1
$ tr -A '^M' '\15\12' < output1 > output2

Aquí \n, \12 i ^M representen avançament de línia en codi d'escapament, ASCII octal i notació ^, respectivament; \r i \15 representen retorn de carro. Per més detalls sobre aquestes traduccions i sobre quan són necessàries es pot consultar salt de línia.


Els llenguatges de programació Ruby i Perl també tenen un operador intern tr que funciona de manera anàloga.

Enllaços externs[modifica]