¿Qué es tr?
tr (translate o transliterate) es un comando de Linux que se usa para traducir, eliminar o comprimir caracteres en un texto. Es una herramienta poderosa para manipular texto directamente desde la terminal.
Sintaxis Básica
tr [opciones] conjunto1 conjunto2conjunto1: Caracteres que quieres reemplazar o eliminar.conjunto2: Caracteres que reemplazarán a los deconjunto1.
Usos Comunes
1. Traducir Caracteres
Reemplaza cada carácter de conjunto1 con el correspondiente de conjunto2.
- Ejemplo: Convertir minúsculas a mayúsculas.
echo "hola mundo" | tr 'a-z' 'A-Z'- Salida:
HOLA MUNDO
- Salida:
2. Eliminar Caracteres
Usa la opción -d para eliminar caracteres específicos.
- Ejemplo: Eliminar todos los números.
echo "abc123def456" | tr -d '0-9'- Salida:
abcdef
- Salida:
3. Comprimir Caracteres Repetidos
Usa la opción -s para comprimir caracteres repetidos en uno solo.
- Ejemplo: Comprimir espacios múltiples en uno solo.
echo "hola mundo" | tr -s ' '- Salida:
hola mundo
- Salida:
4. Complementar Conjuntos
Usa la opción -c para trabajar con todos los caracteres excepto los especificados.
- Ejemplo: Eliminar todo excepto los números.
echo "abc123def456" | tr -cd '0-9'- Salida:
123456
- Salida:
5. Eliminar Saltos de Línea
Puedes usar tr para eliminar saltos de línea (\n) y unir todas las líneas en una sola.
- Ejemplo:
echo -e "hola\nmundo" | tr -d '\n'- Salida:
holamundo
- Salida:
6. Reemplazar Espacios por Tabulaciones
- Ejemplo:
echo "hola mundo" | tr ' ' '\t'- Salida:
hola mundo(con una tabulación en lugar del espacio).
- Salida:
7. Eliminar Caracteres No Imprimibles
Usa tr para eliminar caracteres no imprimibles, como \t (tabulación) o \r (retorno de carro).
- Ejemplo:
echo -e "hola\tmundo\r" | tr -d '\t\r'- Salida:
holamundo
- Salida:
8. Convertir Saltos de Línea de Windows a Unix
Windows usa \r\n para saltos de línea, mientras que Unix usa \n. Puedes convertir archivos de Windows a Unix con tr.
- Ejemplo:
tr -d '\r' < archivo_windows.txt > archivo_unix.txt
Opciones Adicionales
| Opción | Descripción |
|---|---|
-d | Elimina los caracteres especificados en conjunto1. |
-s | Comprime repeticiones de caracteres en uno solo. |
-c | Trabaja con todos los caracteres excepto los especificados. |
-t | Trunca conjunto1 para que tenga la misma longitud que conjunto2. |
Ejemplos Avanzados
-
Convertir Comas en Saltos de Línea:
echo "a,b,c,d" | tr ',' '\n'- Salida:
a b c d
- Salida:
-
Eliminar Caracteres Especiales:
echo "¡Hola! ¿Cómo estás?" | tr -d '¡!¿?'- Salida:
Hola Cómo estás
- Salida:
-
Comprimir Espacios y Convertir a Mayúsculas:
echo " hola mundo " | tr -s ' ' | tr 'a-z' 'A-Z'- Salida:
HOLA MUNDO
- Salida:
Resumen
tr: Comando para traducir, eliminar o comprimir caracteres en texto.- Usos comunes: Convertir mayúsculas/minúsculas, eliminar caracteres, comprimir repeticiones.
- Opciones clave:
-d,-s,-c.
Diagrama de Funcionamiento de tr
graph TD A[Texto de Entrada] --> B{tr} B --> C[Texto Transformado] B --> D[Caracteres Eliminados] B --> E[Caracteres Comprimidos]
Consejo Final
tr es una herramienta sencilla pero poderosa para manipular texto en la terminal. Combínalo con otros comandos como grep, sed o awk para tareas más complejas.