fbpx
Wikipedia

tr (Unix)

tr es un comando de la familia de Sistemas Operativos Unix que permite el reemplazo o eliminación de un conjunto de caracteres de la Entrada estándar (stdin). Su nombre proviene de la palabra inglesa translate, que significa traducir.[1]

Este comando necesariamente trabaja leyendo la información de la Entrada estándar y volcando el resultado directamente a la Salida estándar, no permitiendo en ningún momento que se le indique algún Archivo.

Es muy importante aclarar que tr no es compatible con codificaciones de caracters que utilicen más de 1 byte para su representación, por ejemplo Unicode y toda aquella que use esta (UTF-8). Esta limitación se debe a que el comando trabaja byte a byte en las operaciones que realiza (eliminación/reemplazo), por lo tanto el uso de dichas codificaciones hace que tr genere resultados inesperados.[2]


Modo de uso

La invocación del comando tr tiene la siguiente sintaxis:

  • tr [PARÁMETRO]... CONJUNTO1 [CONJUNTO2]

Donde CONJUNTO1 Y CONJUNTO2 son ambos secuencias de caracteres definidas explícitamente o bien usando los conjuntos predefinidos por este comando. La característica principal de trabajo de tr es que asocia cada carácter del CONJUNTO1 con los del CONJUNTO2, salvo que la operación no requiera de este último conjunto. A continuación se detalla con un ejemplo la asociación:

  • tr 'abc' '123'

En este caso se define explícitamente al CONJUNTO1 compuesto por los caracteres 'a','b' y 'c'. Mientras que el segundo compuesto por '1', '2' y '3'. En este caso tr asocia el carácter 'a' con el '1', 'b' con el '2', etc. En caso de que el primer conjunto sea menor que el segundo, la asociación se realiza con la misma lógica ignorando los sobrantes del CONJUNTO2, mientras que si se da el caso contrario de que el primer conjunto sea mayor tr asume que el último carácter del segundo conjunto estará asociado a los "sobrantes" del CONJUNTO1. Ejemplo:

  • tr 'abcd' '12'

La asociación queda establecida así: 'a' con '1', y 'b','c' y 'd' con '2'. Aun así cabe la posibilidad de cambiar esta forma de asociación usando el parametró -t (ver más abajo).

Por otro lado las operaciones que podemos realizar con tr, están dadas por sus parámetros, los cuales se detallan a continuación:

-c, -C, --complement
Usa el complemento del CONJUNTO1. Esto significa que define al CONJUNTO1 como todos los caracteres que no se encuentran en la definición dada por el Usuario. Este parámetro es útil para indicar caracteres que no queremos que se vean afectados.
-d, --delete
Borra los caracteres de definidos en CONJUNTO1.
-s, --squeeze-repeats
Elimina la secuencia continua de caracteres repetidos, definidos en el CONJUNTO1.
-t, --truncate-set1
Trunca la longitud del CONJUNTO1 según la longitud del CONJUNTO2. Esto hace que si el primer conjunto es más largo que el segundo, solo sean tenidos en cuenta n primeros caracteres, siendo n la longitud de CONJUNTO2.

Definición de conjuntos de caracteres

El comando tr permite al Usuario definir explícitamente como estará compuesto el conjunto o bien provee de una colección de caracteres y conjuntos predefinidos, que puede ser utilizados a la hora de definirlos.

La forma explícita puede constar de escribir cada carácter, o bien definir un rango indicado de la siguiente forma:

  • CARACTER_INICIAL-CARACTER_FINAL

Por ejemplo conjunto 'a-g' define 'abcdefg'. La utilización de rango puede aprovecharse para definir conjuntos de mayúsculas y minúsculas, 'A-Z' y 'a-z' respectivamente, entre otros.

También podemos usar repeticiones, muy útil para la definición del segundo conjunto, de la siguiente forma:

  • [CARACTER*N_REPETICIONES]

Donde carácter es algún carácter explícito o predefinido, y N_Repeticiones, es justamente el número de repeticiones que deseamos. Ejemplo 5 veces la letra a y otras 10 veces la letra b, se define así: '[a*5][b*10]'.

Ahora más allá de esta forma, contamos con algunos caracteres y conjuntos predefinidos por el comando tr:[3]

\\ : Barra invertida.

\a : Carácter audible (Campana/Bell).

\b : Retroceso.

\f : Salto de Página.

\n : Nueva línea.

\r : Retorno de carro.

\t : Tabulador.

\v : Tabulador vertical.

[:alnum:] : Las letras y Dígitos.

[:alpha:] : Letras.

[:blank:] : Espacios en Blanco.

[:cntrl:] : Caracteres de control.

[:digit:] : Dígitos.

[:graph:] : Caracteres imprimibles, sin incluir el Espacio en Blanco.

[:print:] : Caracteres imprimibles, incluyendo el Espacio en Blanco.

[:lower:] : Letras minúsculas.

[:upper:] : Letras mayúsculas.

[:punct:] : Signos de puntuación.

[:space:] : Los Espacios en Blanco verticales y horizontales.

[:xdigit:] : Dígitos Hexadecimales.

[=CARACTER=] : todos los caracteres que sean equivalentes a CARACTER.

Ejemplos

Se muestran a continuación algunos ejemplos sencillos del comando tr. En todos ellos la entrada de información se logra con el comando echo, aunque puede usarse cat , por ejemplo, para el procesamiento de archivos:

Reemplazar las Comillas (") por un Espacio en Blanco, y los punto y comas por el carácter de Tabulación (\t). Útil para trabajar con Archivos CSV

  • $ echo '"Juan";"Pepe";' | tr '";' ' \t'

Resultado: Juan Pepe


Eliminar repeticiones de determinados caracteres, como el punto (.), signos de pregunta (?,¿) y exclamación (!,¡):

  • $ echo 'Este es un simple ejemplo!!!.... Algo práctico tal vez???' | tr -s '!¡.?¿'

Resultado: Este es un simple ejemplo!. Algo práctico tal vez?


Eliminar todos los caracteres repetidos, para eso se hace uso del complemento (parámetro -c) del Conjunto:

  • $ echo 'Esteeee es ooootro simple ejemplo!!!.... ' | tr -c -s ""

Resultado: Este es otro simple ejemplo!.


Reemplazar las Mayúsculas por Minúsculas, y viceversa, haciendo uso de los Conjuntos predefinidos:

  • $ echo 'Hola Mundo!' | tr '[:upper:][:lower:]' '[:lower:][:upper:]'

Resultado: hOLA mUNDO!.


Reemplazar las Mayúsculas por su equivalente al Dígito correspondiente del Teclado telefónico (no está incluida la Ñ):

  • $ echo 'comuníquese al 0-800-WIKI' | tr '[:upper:]' '[2*3][3*3][4*3][5*3][6*3][7*4][8*3][9*4]'

Resultado: comuníquese al 0-800-9454

Véase también

Enlaces externos

  • Página de GNU explicando detalles de tr (GNU Coretutils)
  • [1] Página Man del comando tr.

Referencias

  •   Datos: Q709372

unix, comando, familia, sistemas, operativos, unix, permite, reemplazo, eliminación, conjunto, caracteres, entrada, estándar, stdin, nombre, proviene, palabra, inglesa, translate, significa, traducir, este, comando, necesariamente, trabaja, leyendo, informació. tr es un comando de la familia de Sistemas Operativos Unix que permite el reemplazo o eliminacion de un conjunto de caracteres de la Entrada estandar stdin Su nombre proviene de la palabra inglesa translate que significa traducir 1 Este comando necesariamente trabaja leyendo la informacion de la Entrada estandar y volcando el resultado directamente a la Salida estandar no permitiendo en ningun momento que se le indique algun Archivo Es muy importante aclarar que tr no es compatible con codificaciones de caracters que utilicen mas de 1 byte para su representacion por ejemplo Unicode y toda aquella que use esta UTF 8 Esta limitacion se debe a que el comando trabaja byte a byte en las operaciones que realiza eliminacion reemplazo por lo tanto el uso de dichas codificaciones hace que tr genere resultados inesperados 2 Indice 1 Modo de uso 2 Definicion de conjuntos de caracteres 3 Ejemplos 4 Vease tambien 5 Enlaces externos 6 ReferenciasModo de uso EditarLa invocacion del comando tr tiene la siguiente sintaxis tr PARAMETRO CONJUNTO1 CONJUNTO2 Donde CONJUNTO1 Y CONJUNTO2 son ambos secuencias de caracteres definidas explicitamente o bien usando los conjuntos predefinidos por este comando La caracteristica principal de trabajo de tr es que asocia cada caracter del CONJUNTO1 con los del CONJUNTO2 salvo que la operacion no requiera de este ultimo conjunto A continuacion se detalla con un ejemplo la asociacion tr abc 123 En este caso se define explicitamente al CONJUNTO1 compuesto por los caracteres a b y c Mientras que el segundo compuesto por 1 2 y 3 En este caso tr asocia el caracter a con el 1 b con el 2 etc En caso de que el primer conjunto sea menor que el segundo la asociacion se realiza con la misma logica ignorando los sobrantes del CONJUNTO2 mientras que si se da el caso contrario de que el primer conjunto sea mayor tr asume que el ultimo caracter del segundo conjunto estara asociado a los sobrantes del CONJUNTO1 Ejemplo tr abcd 12 La asociacion queda establecida asi a con 1 y b c y d con 2 Aun asi cabe la posibilidad de cambiar esta forma de asociacion usando el parametro t ver mas abajo Por otro lado las operaciones que podemos realizar con tr estan dadas por sus parametros los cuales se detallan a continuacion c C complement Usa el complemento del CONJUNTO1 Esto significa que define al CONJUNTO1 como todos los caracteres que no se encuentran en la definicion dada por el Usuario Este parametro es util para indicar caracteres que no queremos que se vean afectados d delete Borra los caracteres de definidos en CONJUNTO1 s squeeze repeats Elimina la secuencia continua de caracteres repetidos definidos en el CONJUNTO1 t truncate set1 Trunca la longitud del CONJUNTO1 segun la longitud del CONJUNTO2 Esto hace que si el primer conjunto es mas largo que el segundo solo sean tenidos en cuenta n primeros caracteres siendo n la longitud de CONJUNTO2 Definicion de conjuntos de caracteres EditarEl comando tr permite al Usuario definir explicitamente como estara compuesto el conjunto o bien provee de una coleccion de caracteres y conjuntos predefinidos que puede ser utilizados a la hora de definirlos La forma explicita puede constar de escribir cada caracter o bien definir un rango indicado de la siguiente forma CARACTER INICIAL CARACTER FINALPor ejemplo conjunto a g define abcdefg La utilizacion de rango puede aprovecharse para definir conjuntos de mayusculas y minusculas A Z y a z respectivamente entre otros Tambien podemos usar repeticiones muy util para la definicion del segundo conjunto de la siguiente forma CARACTER N REPETICIONES Donde caracter es algun caracter explicito o predefinido y N Repeticiones es justamente el numero de repeticiones que deseamos Ejemplo 5 veces la letra a y otras 10 veces la letra b se define asi a 5 b 10 Ahora mas alla de esta forma contamos con algunos caracteres y conjuntos predefinidos por el comando tr 3 Barra invertida a Caracter audible Campana Bell b Retroceso f Salto de Pagina n Nueva linea r Retorno de carro t Tabulador v Tabulador vertical alnum Las letras y Digitos alpha Letras blank Espacios en Blanco cntrl Caracteres de control digit Digitos graph Caracteres imprimibles sin incluir el Espacio en Blanco print Caracteres imprimibles incluyendo el Espacio en Blanco lower Letras minusculas upper Letras mayusculas punct Signos de puntuacion space Los Espacios en Blanco verticales y horizontales xdigit Digitos Hexadecimales CARACTER todos los caracteres que sean equivalentes a CARACTER Ejemplos EditarSe muestran a continuacion algunos ejemplos sencillos del comando tr En todos ellos la entrada de informacion se logra con el comando echo aunque puede usarse cat por ejemplo para el procesamiento de archivos Reemplazar las Comillas por un Espacio en Blanco y los punto y comas por el caracter de Tabulacion t Util para trabajar con Archivos CSV echo Juan Pepe tr t Resultado Juan PepeEliminar repeticiones de determinados caracteres como el punto signos de pregunta y exclamacion echo Este es un simple ejemplo Algo practico tal vez tr s Resultado Este es un simple ejemplo Algo practico tal vez Eliminar todos los caracteres repetidos para eso se hace uso del complemento parametro c del Conjunto echo Esteeee es ooootro simple ejemplo tr c s Resultado Este es otro simple ejemplo Reemplazar las Mayusculas por Minusculas y viceversa haciendo uso de los Conjuntos predefinidos echo Hola Mundo tr upper lower lower upper Resultado hOLA mUNDO Reemplazar las Mayusculas por su equivalente al Digito correspondiente del Teclado telefonico no esta incluida la N echo comuniquese al 0 800 WIKI tr upper 2 3 3 3 4 3 5 3 6 3 7 4 8 3 9 4 Resultado comuniquese al 0 800 9454Vease tambien EditarAnexo Programas para Unix grep sedEnlaces externos EditarPagina deGNU explicando detalles de tr GNU Coretutils 1 Pagina Man del comando tr Ejemplos de tr en ingles en examplenow comReferencias Editar http man cat v org unix 8th 1 tr http www gnu org software coreutils manual html node tr invocation html http www linuxmanpages com man1 tr 1 php Datos Q709372Obtenido de https es wikipedia org w index php title Tr Unix amp oldid 127923720, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos