GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Tr en Linux explicado con ejemplos

El verdadero poder de Linux es que hay muchos programas/utilidades creadas para hacernos la vida más fácil. Cuando escribe muchos scripts de shell en su entorno, este conjunto de programas resulta útil, donde utilizará estos programas para manipular su entrada o salida en sus scripts. Una de esas utilidades es tr , que significa traducir . Como su nombre lo indica, el comando tr se usa para traducir, comprimir y eliminar caracteres de la entrada estándar, escribiendo en la salida estándar en sistemas operativos Linux y similares a Unix.

En este artículo, aprenderemos el uso del comando tr con ejemplos prácticos. Al final de esta guía, se sentirá cómodo usando el comando tr y sabrá en qué escenario sería beneficioso usar este comando.

sintaxis y ayuda 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 marcar con tr comando.

$ man tr
$ tr --help

El tr El comando acepta dos argumentos en forma de SET1 y SET2 donde SET1 serán caracteres de entrada que serán traducidos por caracteres en SET2 . Cuando se pasan ciertos indicadores al comando tr, SET2 podría usarse opcionalmente.

tr [OPTION]… SET1 [SET2]

Ejemplo 1 - Traducir con el comando tr

A continuación se muestra un ejemplo simple de cómo usar el tr dominio. El tr el comando se canaliza con el echo comando y minúsculas "ost" se convierte a mayúsculas "OST" .

La conversión aquí ocurrirá en función de la posición de los caracteres en dos conjuntos. El primer carácter de SET1 será reemplazado por el primer carácter de SET2 (o->O ), de igual forma para todos los caracteres (s->S ,t->T ).

$ echo "ostechnix" | tr "ost" "OST"
OSTechnix

Lectura sugerida:

  • Comando Bash Echo explicado con ejemplos en Linux

Ejemplo 2 - Juegos de caracteres y caracteres especiales

El tr comando ofrece el uso de conjuntos de caracteres que hace que la conversión sea muy fácil. El tr El comando también puede interpretar caracteres especiales como (\n ,\t ,\v ) que se puede traducir con diferentes caracteres.

Veamos cómo usar el juego de caracteres. En el siguiente ejemplo, tengo cadenas, números enteros y caracteres de puntuación. los caracteres de puntuación se reemplazan por un punto (. ) usando "[:punct:]" juego de caracteres.

$ echo "Ubuntu 20.04 #$%^" | tr "[:punct:]" "."

Ejemplo 3 - Conversión de casos

Cuando trabaje con cadenas, es posible que desee cambiar el caso de la cadena de inferior a superior o viceversa. Usando el tr comando, puede hacer la conversión de mayúsculas y minúsculas de diferentes maneras.

En la primera forma, puede escribir a a z tanto en el set 1 como en el set 2.

$ echo "ostechnix" | tr "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
OSTECHNIX

Tenga en cuenta que esta no es una forma preferida.

En lugar de escribir todos los caracteres, también puede usar rangos (es decir, a-z , A-Z ).

$ echo "ostechnix" | tr "a-z" "A-Z" # Lower to Upper case
OSTECHNIX
$ echo "OSTECHNIX" | tr "A-Z" "a-z" # Upper to Lower case
ostechnix

Las clases de caracteres también se pueden usar en lugar de los dos métodos anteriores.

$ echo "OSTECHNIX" | tr "[:upper:]" "[:lower:]"
ostechnix
$ echo "ostechnix" | tr "[:lower:]" "[:upper:]"
OSTECHNIX

Ejemplo 4 - Eliminar caracteres

Hay un conjunto de argumentos opcionales que tr apoya para realizar diversas acciones.

Una de esas banderas es "-d o --delete " que eliminará los caracteres que se dan en SET1.

A continuación se muestra la entrada donde tengo tres direcciones IP con espacios en blanco en cada línea y pestañas (2) en la tercera línea. Ahora usando -d bandera puede 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 en blanco. Un punto importante a tener en cuenta aquí es que las pestañas no se eliminan, sino que solo se eliminan los espacios en blanco.

$ tr -d " " < tr_test.txt

Si desea eliminar tanto el espacio como las pestañas (espacios en blanco horizontales), puede usar el "[:blank:]" juego de caracteres.

$ tr -d "[:blank:]" < tr_test.txt

También puede usar el "[:space:]" conjunto de caracteres para eliminar espacios en blanco horizontales y verticales.

$ tr -d "[:space:]" < tr_test.txt

Ejemplo 5:apretar repeticiones

Cuando la bandera "-s o --squeeze-repeats ", los caracteres repetidos dados en SET1 serán reemplazados con una sola ocurrencia del carácter. En el siguiente ejemplo, puede ver que he usado 4 igual a (= ) señal. Ahora -s reemplazará 4 (= ) con 1 (= ).

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

A continuación se muestra otro ejemplo donde los caracteres de nueva línea (\n ) están exprimidos.

$ cat tr_test.txt | tr -s "\n"

Ejemplo 6 - Complemento

Cuando -c se usa la bandera, hará una traducción inversa para el conjunto dado. En el siguiente ejemplo, el tr traducirá todos los alfabetos a "*" normalmente. Pero cuando -c se utiliza, la operación se invertirá. Aparte de los alfabetos, todos los demás caracteres se reemplazarán con "*" .

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

Puede combinar esto con otras banderas para obtener ciertos resultados. Por ejemplo, cuando se combina con -d marca, hará una operación de eliminación inversa.

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

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

Ejemplo 7 - Salida de redireccionamiento

En todas las secciones anteriores, leímos la entrada del archivo y realizamos un procesamiento con tr comando y la salida se envía a la terminal. Si desea redirigir la salida a un archivo en lugar de a una terminal, utilice el operador de redirección.

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

$ gato nuevo_tr_test.txt

Lectura relacionada:

  • Redireccionamiento de Bash explicado con ejemplos

Conclusión

En este artículo, te he explicado cómo usar el tr dominio. En Linux, siempre hay múltiples formas de lograr lo mismo. Lo que hemos mostrado en este artículo también se puede lograr con otros programas como sed , awk , etc. Pero conocer estos comandos y las diferentes formas lo ayudará a decidir la situación correcta para usar el comando/programa correcto.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando de apagado de Linux explicado con ejemplos

  3. Comando nslookup de Linux explicado con ejemplos

  4. Comando Traceroute de Linux, explicado con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando Bash Echo explicado con ejemplos en Linux

Comando IP de Linux con ejemplos

w Comando explicado con ejemplos en Linux

Comando Linux Cat explicado con ejemplos

Explicación del comando tee de Linux (con ejemplos)

Explicación del comando csplit de Linux (con ejemplos)