El comando tr en Linux: traducir y eliminar caracteres

Introducción

El comando tr (translate) es una herramienta esencial en la línea de comandos de Linux que permite traducir, eliminar y comprimir caracteres de una entrada de texto. Aunque su sintaxis es sencilla, su potencia radica en la capacidad de procesar flujos de datos sin necesidad de escribir scripts complejos.

Sintaxis básica

La forma general de tr es:

tr [OPCIONES] SET1 [SET2]

Donde SET1 define el conjunto de caracteres a buscar y SET2 (opcional) el conjunto de reemplazo. Si se omite SET2, tr elimina los caracteres de SET1.

Traducción de caracteres

Una de las aplicaciones más comunes es cambiar mayúsculas por minúsculas o viceversa.

echo 'hola Mundo' | tr 'a-z' 'A-Z'

Este comando convierte todo el texto a mayúsculas, obteniendo HOLA MUNDO. Del mismo modo, para pasar a minúsculas:

echo 'HOLA Mundo' | tr 'A-Z' 'a-z'

Eliminación de caracteres

Si solo se proporciona SET1, tr borra aquellos caracteres de la entrada.

echo 'hola2023!' | tr -d '0-9'

El resultado será hola!. Se pueden eliminar varios tipos de caracteres combinando rangos:

echo 'hola, mundo; 2023.' | tr -d ' ,;'

Esto elimina espacios, comas y punto y coma, dejando holamundo2023.

Compresión de caracteres repetidos

Con la opción -s (squeeze) se pueden reducir secuencias repetidas del mismo carácter a una sola aparición.

echo 'aaabbbccc' | tr -s 'ab'

El resultado es abc, ya que las secuencias de a y b se comprimen.

Casos de uso prácticos

  • Limpiar archivos de log eliminando números de línea: cat log.txt | tr -d '0-9'
  • Convertir saltos de línea de Windows (\r\n) a formato Unix: tr -d '\r' < archivo.txt
  • Generar contraseñas aleatorias tomando solo letras mayúsculas y números: cat /dev/urandom | tr -dc 'A-Z0-9' | head -c12
  • Eliminar comentarios de un script de shell (asumiendo que comienzan con #): tr -d '#' < script.sh

Consejos y trucos

  • Use --help para ver todas las opciones disponibles.
  • Recuerde que los conjuntos pueden incluir clases de caracteres como [:alpha:], [:digit:] o [:space:].
  • Combine tr con tuberías (|) y otros comandos como sed, awk o grep para flujos de trabajo más sofisticados.
  • Si necesita distinguir entre mayúsculas y minúsculas en la eliminación, especifique ambos rangos explícitamente.

Conclusión

El comando tr es una herramienta ligera pero poderosa que pertenece al repertorio de cualquier administrador de sistemas o desarrollador que trabaje en Linux. Dominar su uso le permitirá realizar transformaciones de texto rápidas y eficientes sin recurrir a lenguajes de programación más pesados.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol