Tutoriales

El comando Tr en Linux explicado con ejemplos

La verdadera fuerza de Linux es que hay muchos programas / utilidades que están diseñados para hacernos la vida más fácil. Si escribe muchos scripts de shell en su entorno, este conjunto de programas es útil donde utilizará esos programas para manipular su entrada o salida en sus scripts. Una de esas utilidades es trque lo representa Traducir. Como sugiere el nombre, el comando tr se usa para traducir, comprimir y eliminar caracteres de la entrada estándar y para escribirlos en la salida estándar en sistemas operativos Linux y similares a Unix.

En este artículo aprenderemos cómo usar los comandos tr con ejemplos prácticos. Al final de esta guía, estará familiarizado con el uso del comando tr y en qué escenario sería beneficioso usar este comando.

ayuda y sintaxis del comando tr

Para conocer la sintaxis y la lista de argumentos que admite el comando tr, consulte la página del manual o use --help Bandera con tr Mando.

$ man tr
$ tr --help

los tr El comando toma dos argumentos en forma de SERIE 1 y SET2 Dónde SERIE 1 serán caracteres de entrada que son traducidos por caracteres a SET2. Si se pasan ciertos indicadores al comando tr, opcionalmente se puede usar SET2.

tr [OPTION]… SET1 [SET2]

Ejemplo 1: compilación con el comando tr

A continuación se muestra un ejemplo sencillo de cómo utilizar el tr Mando. los tr El comando se dirige con el echo Comando y letras minúsculas «este» se convertirá a letras mayúsculas «ESTE».

La conversión se realiza aquí en función de la posición de los personajes en dos oraciones. El primer carácter en SET1 se reemplaza por el primer carácter en SET2 (o-> O), similar para todos los caracteres (s-> p,t-> T).

$ echo "ostechnix" | tr "ost" "OST"
OSTechnix
Convierta letras minúsculas a mayúsculas con el comando tr

Ejemplo 2: conjuntos de caracteres y caracteres especiales

los tr Command ofrece el uso de juegos de caracteres, lo que facilita la conversión. los tr El comando también puede usar caracteres especiales como (n,t,v), que se puede traducir con diferentes caracteres.

Conjuntos de caracteres
Conjuntos de caracteres

Veamos cómo se usa el juego de caracteres. En el siguiente ejemplo, tengo cadenas, números enteros y signos de puntuación. Los signos de puntuación están separados por un punto (.) con "[:punct:]" Conjunto de caracteres.

$ echo "Ubuntu 20.04 #$%^" | tr "[:punct:]" "."
Traducir con juego de caracteres
Traducir con juego de caracteres

Ejemplo 3: conversión de casos

Cuando trabaje con cadenas, es posible que desee cambiar el caso de la cadena de abajo hacia arriba o viceversa. Uso de tr Command, puede convertir el caso a minúsculas de diferentes formas.

En primer lugar, puede ingresar a para Con tanto en la oración 1 como en la oración 2.

$ echo "ostechnix" | tr "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
OSTECHNIX
Conversión a mayúsculas
Conversión a mayúsculas

Tenga en cuenta que esta no es una ruta preferida.

En lugar de ingresar todos los caracteres, también puede usar rangos (p. Ej. Arizona, Arizona).

$ echo "ostechnix" | tr "a-z" "A-Z" # Lower to Upper case
OSTECHNIX
$ echo "OSTECHNIX" | tr "A-Z" "a-z" # Upper to Lower case
ostechnix
Conversión de letras minúsculas y mayúsculas usando rangos
Conversión de letras minúsculas y mayúsculas usando rangos

Las clases de caracteres también se pueden utilizar en lugar de los dos métodos mencionados anteriormente.

$ echo "OSTECHNIX" | tr "[:upper:]" "[:lower:]"
ostechnix
$ echo "ostechnix" | tr "[:lower:]" "[:upper:]"
OSTECHNIX
Conversión con juego de caracteres
Conversión con juego de caracteres

Ejemplo 4: eliminar caracteres

Hay una serie de argumentos opcionales para tr admite varias acciones.

Esa bandera es «-d o --delete«que elimina los caracteres que se especifican en SET1.

A continuación se muestra la entrada donde tengo tres direcciones IP con espacios en cada línea y pestañas (2) en la tercera línea. Ahora usa el -d Puede utilizar la bandera para limpiar los espacios en blanco.

  192.168. 1. 12   
  192.168. 1. 13  
        192.168. 1. 14 

Ejecute el siguiente comando que eliminará todos los espacios. Un punto importante a tener en cuenta aquí es que no elimina las pestañas, solo elimina los espacios.

$ tr -d " " < tr_test.txt
Quitar espacios
Quitar espacios

Si desea eliminar tanto los espacios como las pestañas (espacios horizontales), puede "[:blank:]" Conjunto de caracteres.

$ tr -d "[:blank:]" < tr_test.txt
Eliminar espacios y pestañas
Eliminar espacios y pestañas

También puede utilizar el "[:space:]" Juego de caracteres para eliminar espacios horizontales y verticales.

$ tr -d "[:space:]" < tr_test.txt
Eliminar espacios horizontales y verticales
Eliminar espacios horizontales y verticales

Ejemplo 5: repeticiones de compresión

Cuando la bandera «-s o --squeeze-repeats«, los caracteres repetidos especificados en SET1 se reemplazan con una sola aparición del carácter. En el ejemplo siguiente, puede ver que soy igual a 4 (=) Firma. ahora -s reemplaza 4 (=) con 1 (=).

$ echo "Production IP ==== 192.168.1.10" | tr -s "="
Production IP = 192.168.1.10
Apretar personajes
Apretar personajes

A continuación se muestra otro ejemplo donde los saltos de línea (n) exprimido.

$ cat tr_test.txt | tr -s "n"
Apriete el letrero de nueva línea
Apriete el letrero de nueva línea

Ejemplo 6 – Complemento

Si eso -c Se usa bandera, realiza una traducción inversa para la oración dada. En el siguiente ejemplo, tr traduce todos los alfabetos a "*" normalmente. Pero si -c se utiliza, la operación se invierte. A excepción de los alfabetos, todos los demás caracteres se reemplazan por "*".

$ echo "Employee Number is 1267890" | tr -c "[:alpha:]" "*"

Puede combinar esto con otras banderas para lograr resultados específicos. Por ejemplo, en combinación con el -d Flag, realiza un proceso de borrado inverso.

$ echo "Employee Number is 1267890" | tr -cd "[:digit:]"
Bandera suplementaria
Bandera suplementaria

Nota: En el ejemplo anterior, puede ver que el carácter de nueva línea también se traduce / elimina. Con este método, tenga en cuenta este punto y continúe.

Ejemplo 7: redireccionar la salida

En todas las secciones anteriores hemos leído las entradas del archivo y hemos realizado algunos procesamientos con el tr El comando y la salida se envían al terminal. Si desea redirigir la salida a un archivo en lugar de a una terminal, use el operador de redirección.

$ tr -s "n" < tr_test.txt > new_tr_test.txt

$ cat new_tr_test.txt

Redirigir la salida a un archivo
Redirigir la salida a un archivo

diploma

En este artículo, lo guié a través del uso de tr Mando. En Linux siempre hay varias formas de lograr lo mismo. Lo que hemos mostrado en este artículo también se puede utilizar con otros programas como sed, awk, etc. Pero conocer estos comandos y las diferentes formas en que pueden ayudarlo a identificar la situación correcta para usar el comando / programa correcto.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba