Introducción
El tr
command es una utilidad de línea de comandos de Linux que traduce o elimina caracteres de la entrada estándar (stdin
) y escribe el resultado en la salida estándar (stdout
). Usa tr
para realizar diferentes transformaciones de texto, incluida la conversión de mayúsculas y minúsculas, la compresión o eliminación de caracteres y el reemplazo básico de texto.
Desde tr
no puede leer un archivo directamente y genera los resultados en una salida estándar, a menudo se usa con canalizaciones (|
) y redirecciones (>>
) para permitir un procesamiento de contenido de archivo más complejo.
En este tutorial, aprenderá a usar Linux tr
comando.
Requisitos previos
- Un sistema que ejecuta Linux.
- Acceso a la terminal (Ctrl +
Alternativo + T ).
Sintaxis del comando tr de Linux
El tr
básico la sintaxis del comando es:
tr [options] SET1 [SET2]
Opciones
Corriendo tr
sin ninguna opción reemplaza cada uno de los caracteres especificados en SET1
con los caracteres de SET2
que tienen la misma posición.
Por ejemplo:
En el ejemplo anterior, la salida del comando echo se canaliza al tr
comando, reemplazando cada instancia de e con o .
ESTABLECER
SET
s son cadenas de caracteres. El comando acepta las siguientes secuencias interpretadas para la coincidencia de caracteres:
Secuencia | Interpretación |
---|---|
\NNN | Personajes con el NNN valor octal (1 a 3 dígitos octales). |
\\ | barra invertida. |
\a | Un carácter de campana audible. |
\b | Retroceso. |
\f | Fuente de formulario. |
\n | Carácter de nueva línea. |
\r | Carácter de retorno. |
\t | Pestaña horizontal. |
\v | Pestaña vertical. |
CHAR1-CHAR2 | Todos los caracteres desde CHAR1 a CHAR2 en orden ascendente. |
[CHAR*] | Copias CHAR* en SET2 hasta la longitud de SET1 . |
[CHAR*REPEAT] | Repite copias de CHAR . Repite octal si comienza con 0. |
[:alnum:] | Todas las letras y dígitos. |
[:alpha:] | Todas las letras. |
[:blank:] | Espacios en blanco horizontales. |
[:cntrl:] | Todos los caracteres de control. |
[:digit:] | Todos los dígitos. |
[:graph:] | Caracteres imprimibles, excluyendo espacios. |
[:lower:] | Todos los caracteres en minúscula. |
[:print:] | Caracteres imprimibles, incluido el espacio. |
[:punct:] | Todos los caracteres de puntuación. |
[:space:] | Caracteres de espacio en blanco horizontales o verticales. |
[:upper:] | Todas las letras mayúsculas. |
[:xdigit:] | Dígitos hexadecimales. |
[=CHAR=] | Todos los caracteres equivalen a CHAR . |
Opciones de comando Linux tr
Las opciones proporcionan acciones adicionales de transformación de personajes. Las opciones disponibles son:
Opción | Descripción |
---|---|
-C | Complementa los caracteres en SET1 , incluidos todos los caracteres de la salida excepto los especificados. |
-c | Complementa los valores en SET1 . Las operaciones se aplican a caracteres que no están en el conjunto dado. |
-d | Elimina caracteres del SET1 entrada. |
-s | Exprime los caracteres repetidos especificados en el último operando (ya sea SET1 o SET2 ) y los reemplaza con una sola aparición de ese carácter. |
-t | Trunca SET1 hasta la longitud de SET2 . |
-u | Asegura que cualquier salida no esté almacenada en búfer. |
--help | Muestra el archivo de ayuda con todas las opciones disponibles. |
--version | Muestra la información de la versión del programa. |
Ejemplos de Linux tr
A continuación se muestran ejemplos del uso del tr
comando con diferentes opciones para transformar el texto de entrada.
Cambiar mayúsculas y minúsculas
Hay tres formas de cambiar mayúsculas y minúsculas con tr
:
Especifique qué caracteres de la entrada desea convertir. Esta opción cambia las mayúsculas y minúsculas o los caracteres completos, reemplazando los de SET1
con los de SET2
.
Por ejemplo:
Especificar un rango permite tr
para cambiar el caso de cualquier carácter dentro de ese rango especificado. El siguiente ejemplo muestra cómo convertir caracteres en mayúsculas a minúsculas:
Presiona CTRL+C para salir del modo de entrada.
Haga coincidir y convierta caracteres especificando secuencias interpretadas. Por ejemplo, la secuencia de caracteres en minúsculas es [:lower:]
y la secuencia de caracteres en mayúsculas es [:upper:]
. Especificar las dos secuencias instruye a tr
para hacer coincidir y convertir el caso del carácter:
El ejemplo anterior muestra cómo tr
convierte los caracteres en mayúsculas a minúsculas.
Eliminar caracteres repetidos
El -s
La opción comprime los caracteres repetidos en una sola instancia de ese carácter. La opción es especialmente útil cuando se convierten espacios en blanco en tabuladores o caracteres de nueva línea, y el texto de entrada contiene varios espacios en blanco continuos.
Por ejemplo, la siguiente entrada contiene varios caracteres de espacio en blanco. Convertirlos en pestañas sin apretar proporciona el siguiente resultado:
Para evitar varias pestañas y espacios en blanco en la salida, especifique el -s
opción:
Eliminar caracteres
Elimina caracteres específicos usando el -d
opción. En el siguiente ejemplo, tr
elimina cada instancia de e carácter:
Opcionalmente, especifique un grupo de caracteres usando secuencias interpretadas. Por ejemplo, elimine todos los dígitos especificando el [:digit:]
secuencia:
Conjuntos complementarios
Usa el -c
opción para complementar los caracteres en SET1
. En el siguiente ejemplo, eliminamos todos los caracteres excepto los dígitos:
Se eliminan todos los caracteres que no están en el conjunto especificado (en este caso, todo excepto los dígitos).
Eliminar caracteres de nueva línea
Reduzca el espacio que ocupa un texto convirtiendo los caracteres de nueva línea en espacios. El contenido aparece entonces en una sola línea.
En el siguiente ejemplo, usamos el comando cat para abrir un archivo de texto y canalizarlo a tr
para eliminar caracteres de nueva línea:
Redireccionar a tr
Una alternativa a la canalización es usar la redirección para enviar contenido a tr
. Además, puede usar la redirección para guardar el tr
salida en un archivo.
El siguiente ejemplo muestra cómo eliminar todos los caracteres no imprimibles de un archivo cuyo contenido se redirige a tr
:
Conjunto truncado
Por defecto, si SET1
es más largo que SET2
, tr
reutiliza el último carácter de SET2
al procesar la entrada. Por ejemplo:
Desde SET1
es más largo que SET2
, tr
reutiliza el último carácter de SET2
, en este caso, 2 .
Usa el -t
opción para truncar SET1
hasta la longitud de SET2
:
El -t
opción instruye a tr
para truncar SET1
hasta la longitud de SET2
y reemplaza solo los dos primeros caracteres.
Eliminar signos diacríticos
Usa el [=CHAR=]
secuencia para que coincida con todos los caracteres equivalentes al especificado. Por ejemplo, la secuencia puede identificar y eliminar signos diacríticos de los caracteres.
Imprimir cada palabra por separado
Imprima el contenido de un archivo línea por línea usando el -c
opción y reemplace los caracteres no alfanuméricos con un carácter de nueva línea.
La salida ahora se muestra una palabra a la vez.
Guardar salida en archivo
Desde tr
no cambia el contenido de un archivo directamente, tampoco guarda los cambios que realice. Guarde el resultado en un archivo redirigiéndolo como se muestra en el siguiente ejemplo:
Abriendo el nuevo archivo con cat
muestra que los cambios se han guardado.
Conclusión
Este tutorial mostró cómo usar el tr
comando y sus opciones disponibles para varias transformaciones de texto. Consulte otras utilidades de texto de Linux en nuestras guías para el comando de ordenación y menos el buscapersonas de terminal, o vea los mejores editores de texto de Linux.