tr es una utilidad de UNIX para traducir, eliminar o comprimir caracteres repetidos. Leerá desde STDIN y escribirá en STDOUT.
tr significa traducir.
Sintaxis
La sintaxis del comando tr es:
$ tr [OPTION] SET1 [SET2]
Traducción
Si se especifican SET1 y SET2 y no se especifica la OPCIÓN '-d', entonces el comando tr reemplazará cada carácter en SET1 con cada carácter en la misma posición en SET2.
1. Convertir minúsculas a mayúsculas
El siguiente comando tr se usa para convertir minúsculas a mayúsculas
$ tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ thegeekstuff THEGEEKSTUFF
El siguiente comando también convertirá minúsculas a mayúsculas
$ tr [:lower:] [:upper:] thegeekstuff THEGEEKSTUFF
También puede usar rangos en tr. El siguiente comando usa rangos para convertir minúsculas a mayúsculas.
$ tr a-z A-Z thegeekstuff THEGEEKSTUFF
2. Traducir llaves a paréntesis
También puede traducir desde y hacia un archivo. En este ejemplo traduciremos llaves en un archivo con paréntesis.
$ tr '{}' '()' < inputfile > outputfile
El comando anterior leerá cada carácter de "archivo de entrada", traducirá si es una llave y escribirá la salida en "archivo de salida".
3. Traducir espacios en blanco a pestañas
El siguiente comando traducirá todos los espacios en blanco a pestañas
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
4. Aprieta la repetición de caracteres usando -s
En el Ejemplo 3, vemos cómo traducir el espacio con tabulaciones. Pero si hay dos espacios más presentes continuamente, entonces el comando anterior traducirá cada espacio a una pestaña de la siguiente manera.
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
Podemos usar la opción -s para exprimir la repetición de caracteres.
$ echo "This is for testing" | tr -s [:space:] '\t' This is for testing
Del mismo modo, puede convertir múltiples espacios continuos con un solo espacio
$ echo "This is for testing" | tr -s [:space:] ' ' This is for testing
5. Eliminar caracteres especificados usando la opción -d
tr también se puede usar para eliminar caracteres particulares usando la opción -d.
$ echo "the geek stuff" | tr -d 't' he geek suff
Para eliminar todos los dígitos de la cadena, use
$ echo "my username is 432234" | tr -d [:digit:] my username is
Además, si desea eliminar líneas del archivo, puede usar el comando sed d.
6. Complemente los conjuntos usando la opción -c
Puede complementar el SET1 usando la opción -c. Por ejemplo, para eliminar todos los caracteres excepto los dígitos, puede usar lo siguiente.
$ echo "my username is 432234" | tr -cd [:digit:] 432234
7. Eliminar todos los caracteres no imprimibles de un archivo
El siguiente comando se puede usar para eliminar todos los caracteres no imprimibles de un archivo.
$ tr -cd [:print:] < file.txt
8. Une todas las líneas de un archivo en una sola línea
El siguiente comando traducirá todas las líneas nuevas a espacios y hará que el resultado sea una sola línea.
$ tr -s '\n' ' ' < file.txt