Tr — Traducción y Borrado de Caracteres desde Stdin
Transformación de flujos de texto con tr: reemplazo de delimitadores, conversión de caja, conjuntos POSIX [:lower:]/[:upper:], borrado (-d) y compresión (-s).
1. Operational Scope & Technical Objective
tr transforma un flujo de caracteres en otro: traduce (mapea un set de caracteres a otro), borra (-d) y comprime (-s). A diferencia de sed, no trabaja por líneas ni regex, sino por conjuntos de caracteres (a-z, [:lower:], \t), lo que lo hace la herramienta más simple y veloz para normalizar texto: convertir delimitadores, cambiar caja, eliminar caracteres no deseados o colapsar repeticiones. Es el primer paso de limpieza en cualquier pipeline de parsing.
2. High-Impact Syntax & Command Cheatsheet
# Traducción: sustituir un conjunto por otro
cat sample.txt | tr ',' '\t'
# reemplaza el delimitador coma por tabulador (normalización de CSV)
cat sample.txt | tr 'a-z' 'A-Z'
# minúsculas -> mayúsculas (rangos de caracteres)
cat sample.txt | tr '[:lower:]' '[:upper:]'
# lo mismo usando conjuntos POSIX (más legible y portable)
# Conjuntos: [:lower:] [:upper:] [:digit:] [:alpha:] [:alnum:] [:space:]
# Borrado de caracteres (-d)
cat sample.txt | tr -d '\r'
# elimina los retornos de carro (normaliza ficheros Windows -> Unix)
cat sample.txt | tr -d '0-9'
# elimina todos los dígitos del flujo
# Compresión de repeticiones (-s)
echo "aaabbbccc" | tr -s 'a'
# aaabbbccc -> abbbccc (colapsa la 'a' repetida)
cat file.txt | tr -s '\n'
# colapsa líneas en blanco consecutivas (compactar logs)
3. Real-World Offensive/Defensive Scenarios
Normalización de salidas antes de parsear. Un volcado con CRLF o con separadores inconsistentes rompe cut/awk. tr -d '\r' + tr ',' '\t' dejan el flujo en el formato exacto que el siguiente parser espera, sin ficheros intermedios.
Ofuscación y transformación de payloads. tr 'a-z' 'A-Z' o permutaciones de rangos transforman strings (prefijos, cadenas de reconocimiento) al vuelo; ROT13 se implementa con tr '[A-Za-z]' '[N-ZA-Mn-za-m]', el mismo mecanismo usado para decodificar texto ofuscado incautado.
Defensa (logs). tr -s '\n' compacta logs con líneas en blanco repetidas y tr -d '\r' unifica formatos antes del análisis automatizado — pasos baratos que evitan falsos positivos en parsers de SIEM sensibles a espacios o saltos de línea.