10 ejemplos de comandos tr en Linux


tr (abreviatura de translate) es una utilidad de línea de comandos útil que traduce y/o elimina caracteres de la entrada stdin y escribe en stdout. Es un programa útil para manipular texto en la línea de comandos.

En este artículo, explicaremos algunos ejemplos útiles de comandos tr para principiantes de Linux.

La sintaxis para ejecutar el comando tr es la siguiente, donde los caracteres en SET1 se traducen a caracteres en SET2.

$ tr flags [SET1] [SET2]

Ejemplos de comandos tr de Linux

1. Un caso de uso simple del comando tr es cambiar todas las letras minúsculas en el texto a mayúsculas y viceversa, como se muestra a continuación.

$ cat linux.txt

linux is my life
linux has changed my life
linux is best and everthing to me..:)
$ cat domains.txt | tr [:lower:] [:upper:]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

2. Alternativamente, puede usar el siguiente comando para cambiar todas las letras minúsculas a mayúsculas en un archivo como se muestra.

$ cat linux.txt | tr [a-z] [A-Z]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

3. Para guardar los resultados escritos en stdout en un archivo para su posterior procesamiento, use la función de redirección de salida del shell (>) como se muestra.

$ cat linux.txt | tr [a-z] [A-Z] >output.txt
$ cat output.txt 

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

4. Con respecto a la redirección, puede enviar la entrada a tr usando la redirección de entrada y redirigir la salida a un archivo usando el mismo comando, como se muestra.

$ tr [a-z] [A-Z] < linux.txt >output.txt

5. Otra característica útil es que puede usar la bandera -d para eliminar caracteres, por ejemplo, para eliminar los espacios en los nombres de dominio usando el siguiente comando.

$ cat domains.txt

www. tecmint. com
www. fossmint. com
www. linuxsay. com
$ cat domains.txt | tr -d '' 

www.tecmint.com
www.fossmint.com
www.linuxsay.com

6. Si hay caracteres repetidos en una secuencia (por ejemplo, espacios dobles) en el texto que está procesando, puede usar la opción -s para comprimir los caracteres dejando solo una aparición.

$ cat domains.txt

www.tecmint.....com
www.fossmint.com
www.linuxsay.com
$ cat domains.txt | tr -s '' 

www.tecmint.com
www.fossmint.com
www.linuxsay.com

7. La opción -c le dice a tr que use el complemento en el SET dado. En este ejemplo, queremos eliminar todas las letras y solo dejar el UID.

$ echo "My UID is $UID" | tr -cd "[:digit:]\n"
OR
$ echo "My UID is $UID" | tr -d "a-zA-Z"

8. A continuación se muestra un ejemplo de cómo dividir una sola línea de palabras (oración) en varias líneas, donde cada palabra aparece en una línea separada.

$ echo "My UID is $UID"

My UID is 1000

$ echo "My UID is $UID" | tr " "  "\n"

My 
UID 
is 
1000

9. En relación con el ejemplo anterior, también puede traducir varias líneas de palabras en una sola oración como se muestra.

$ cat uid.txt

My 
UID 
is 
1000

$ tr "\n" " " < uid.txt

My UID is 1000

10. También es posible traducir un solo carácter, por ejemplo, un espacio en un carácter “:” , de la siguiente manera.

$ echo "Tecmint.com =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

Tecmint.com:=>Linux-HowTos,Guides,Tutorials

Hay varios caracteres de secuencia que puede usar con tr; para obtener más información, consulte la página de manual de tr.

$ man tr

¡Eso es todo! tr es un comando útil para manipular texto en la línea de comandos. En esta guía, mostramos algunos ejemplos útiles de uso del comando tr para principiantes de Linux. Puede compartir sus pensamientos con nosotros a través del formulario de comentarios a continuación.