En el caso que tengamos un texto y queramos transformar la totalidad de a
a A
lo haremos del siguiente modo:
1 |
echo "Esto es una ejemplo de tr para el blog geekland" | tr 'a' 'A' |
En el caso que queramos reemplazar todas las vocales de una frase de minúscula a mayúscula lo podemos hacer del siguiente modo:
1 |
echo "Esto es una ejemplo de tr para el blog geekland" | tr 'aeiou' 'AEIOU' |
En el caso que queramos transformar la totalidad de letras mayúsculas a minúsculas lo podemos hacer del siguiente modo:
1 |
echo "Esto es una ejemplo de tr para el blog geekland" | tr 'a-z' 'A-Z' > geekland.txt |
Si queremos también podemos añadir una línea nueva al fichero geekland.txt
que sea igual que la primera pero en minúscula siguiendo el siguiente procedimiento:
1 |
cat geekland.txt | tr 'A-Z' 'a-z' >> geekland.txt |
Si ejecutamos el siguiente comando:
1 |
echo "Esto es un ejemplo de tr para el blog geekland" | tr 'a-z' 'AB' |
Vemos que ha ocurrido lo siguiente:
La letra a
se reemplaza por la A
. La b
por la B
y a partir de aquí la c
, e
, f
… hasta llegar la z
se reemplazarán por la B
.
Si queremos evitar este comportamiento podemos usar la opción -t
o truncate. Si ejecutamos el mismo comando añadiendo la opción -t
:
1 |
echo "Esto es un ejemplo de tr para el blog geekland" | tr -t 'a-z' 'AB' |
Vemos que ha ocurrido lo siguiente:
La letra a
se reemplaza por la A
. La b
por la B
y a partir de aquí no se reemplazará ninguna otra letra. El comportamiento ahora será de este modo gracias a la opción -t
. Por lo tanto la opción -t
hace que la longitud del primero de los argumentos introducidos en el comando tr
sea igual que la del segundo argumento.
Nota: Con la opción -t
el primero de los argumentos introducidos del comando tr
tiene que tener una longitud igual o superior al segundo de los argumentos.
Si queremos borrar todas las vocales mayúsculas y minúsculas de una frase y que sean reemplazadas por un espacio en blanco lo haremos mediante la opción tr -d
. Un ejemplo de lo que acabo de citar es el siguiente:
1 |
echo "Esto es un ejemplo de tr para el blog geekland" | tr -d 'aeiou' | tr -d 'AEIOU' |
Si quisiéramos que las vocales borradas fueran reemplazadas por espacios en blanco deberíamos haber usado el siguiente comando:
1 |
echo "Esto es un ejemplo de tr para el blog geekland" | tr 'aeiou' ' ' |
Para borrar todo el contenido de una frase excepto las vocales aeiou, tendremos que usar la opción -c
. La opción -c
o complemento vendría a actuar como lo contrario a la orden que introducimos en el comando. Por lo tanto para borrar todas las letras que no sea vocales de una frase lo haremos del siguiente modo:
1 |
echo "Esto es un ejemplo de tr para el blog geekland" | tr -cd 'aeiou' |
Para borra todos los caracteres que no son legibles, se utiliza el siguiente comando :
1 |
head /dev/urandom | tr -cd '[:print:]\n' |
Nota: Mediante la opción -cd '[:print:]'
estamos diciendo que se borre todo carácter que no se imprimible/legíble. Además la opción \n
hará que al finalizar la tarea el cursos de la terminal quede ubicado en una nueva línea.
Para borra todo lo que no sea un digito o numero se realizara con el siguiente comando :
1 |
echo "Esto es un ejemplo de tr para el blog gee1kland 1234" | tr -cd '[:digit:]\n' |
Si por lo contrario quieren borrar la totalidad de números que aparecen a la frase tan solo tendrían que eliminar la opción -c
complemento y obtendrían el siguiente resultado:
1 |
echo "Esto es un ejemplo de tr para el blog gee1kland 1234" | tr -d '[:digit:]\n' |
En ocasiones escribimos rápido y es posible que por error escribamos 2 caracteres repetidos de forma consecutiva. Un ejemplo de lo que acabo de citar es el siguiente:
1 |
Esto es un ejeeemplo de tr para el blog. |
En el ejemplo vemos que a la palabra ejemplo le sobran dos e. Para eliminarlas lo podemos hacer con la opción -s
Squeeze del siguiente modo:
1 |
echo "Esto es un ejeeemplo de tr para el blog geekland" | tr -s 'e' |
Si tuviéramos una frase con exceso de espacios, como por ejemplo la siguiente:
1 |
El comando tr es útil en determinados casos |
Y quisiéramos eliminar los espacios sobrantes lo haríamos del siguiente modo:
1 |
echo "El comando tr es útil en determinados casos" | tr -s [:space:] |
Transformar los espacios en tabulaciones horizontales o verticales con TR
En el ejemplo que propondremos a continuación tenemos 3 palabras separadas por un espacio:
1 |
joan carles geekland |
Si queremos transformar este espacio por un tabulación lo haremos usando la opción [:space:]
y \t
del siguiente modo:
1 |
echo "joan carles geekland" | tr [:space:] '\t' |
La opción \t
añade una tabulación horizontal. Si quisiéramos añadir una tabulación vertical lo haríamos con la opción \v
del siguiente modo obteniendo un resultado parecido al siguiente:
1 |
echo "joan carles geekland" | tr [:space:] '\v' |
Generar una nueva línea cada vez que encontremos un determinado carácter delimitador
Si tenemos una frase, que obviamente está compuesta por palabras separadas por espacio, podemos separar cada una de las palabras en una nueva línea usando la siguiente sintaxis:
1 |
echo "joan carles geekland" | tr [:space:] '\n' |
Obviamente este artículo únicamente detalla algunas de las opciones del comando tr
.