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
--helppara ver todas las opciones disponibles. - Recuerde que los conjuntos pueden incluir clases de caracteres como
[:alpha:],[:digit:]o[:space:]. - Combine
trcon tuberías (|) y otros comandos comosed,awkogreppara 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.