Comandos de Linux

Comando tr de Linux

Comando tr de Linux
En Linux, "tr" es una herramienta incorporada que puede "traducir, comprimir y / o eliminar caracteres de la entrada estándar, escribiendo en la salida estándar" (desde la página del manual).

A partir de la descripción oficial, es fácil comprender el valor de esta herramienta. Linux presenta una gran colección de herramientas integradas. Hay algunos especiales que son muy útiles para la manipulación de texto. Ya hemos cubierto varios de ellos, como Vim, Nano, awk, sed y otras herramientas.

Aquellos que trabajan con textos de forma regular, "tr" definitivamente será muy, muy útil. Este artículo ilustrará el uso más común de "tr" con suficientes ejemplos.

Nota: El tutorial utilizará una tonelada de archivos ficticios con contenido aleatorio. Todas las cadenas aleatorias son generadas por Aleatorio.org.

Localización

cual tr

Esta es la ruta completa de la herramienta de comando "tr".

Uso básico

Para usar la herramienta "tr", debe usar la siguiente estructura de comando.

tr [SET1] [SET2]

Hay diferentes opciones y formas de manipular los textos usando "tr". Primero, echemos un vistazo a este archivo de demostración.

demostración de gato.TXT

Todos los caracteres están en minúsculas, a la derecha? Transformémoslos a mayúsculas!

demostración de gato.txt | tr [: inferior:] [: superior:]

Aquí, el primer parámetro de "tr" indica realizar una traducción en todos los caracteres en minúscula de la entrada. La segunda parte dice que los transforme en mayúsculas en la salida.

Ahora, hagamos lo contrario.

demo de gato1.TXT

demo1 gato.txt | tr [: superior:] [: inferior:]

También hay otra forma de realizar esta misma tarea. Vamos a ver.

demostración de gato.txt | tr [a-z] [A-Z]

Ahora, en lugar de decirle a "tr" que traduzca mayúscula a minúscula o de minúscula a mayúscula, le dijimos que identificara las entradas que coincidan con el rango "a" a "z" y que traduzca a su equivalente del rango "A" a "Z".

Este método similar también se puede utilizar para traducir mayúsculas a minúsculas.

demo de gato1.txt | tr [A-Z] [a-z]

Jugando con numeros

Vimos cómo traducir mayúsculas a minúsculas, a la derecha? Es hora de jugar con los dígitos.

Usando el siguiente comando, podemos traducir fácilmente todos los dígitos (0-9) a sus caracteres equivalentes!

gato demo_digit.TXT

gato demo_digit.txt | tr [0-9] [a-z]

Impresionante! ¿Qué hay de las mayúsculas??

gato demo_digit.txt | tr [0-9] [A-Z]

Simple, pero interesante, ¿verdad?? También podemos transformar caracteres en dígitos!

gato demo_lowercase.TXT

gato demo_lowercase.txt | tr [a-z] [0-9]

Uh oh, parece que las cosas se rompieron, ¿verdad?? Bueno, solo podemos usar 'a' a 'j' para representar un solo dígito. Si hay algún carácter fuera de este límite, "tr" reemplazará el carácter con ']'.

Eliminando personajes

Como sugiere la descripción oficial, "tr" puede hacer más que la simple traducción de caracteres. En el siguiente ejemplo, veremos cómo usar "tr" para eliminar ciertos caracteres.

gato al azar.TXT

Ahora, eliminemos todos los números del contenido.

gato al azar.txt | tr -d [0-9]

Aquí, la bandera "-d" es para decirle a "tr" que elimine y [0-9] denota dígitos para eliminar.

También podemos hacer eso con los personajes. El siguiente comando mantendrá todos los números pero eliminará todos los caracteres.

gato al azar.txt | tr -d [a-z]

¿Qué tal eliminar solo un carácter específico del archivo??

gato demo_lowercase.TXT

gato demo_lowercase.txt | tr -d 'y'

Eliminó todas las entradas 'y' del archivo.

Exprimiendo caracteres repetidos

Hay ocasiones en las que un personaje se repite secuencialmente. Si está lidiando con problemas tan molestos, deje que "tr" se encargue de ello! Usando el siguiente comando, puede apretar tales ocurrencias. Básicamente, mantiene la aparición inicial del personaje y elimina las adicionales.

Primero, es hora de comprobar cómo se ve el archivo de demostración.

gato duplicado.TXT

Ahora, pase el contenido a "tr".

gato duplicado.txt | tr -s [: dígitos:]

Aquí, el parámetro "-s" es el indicador para realizar la acción "apretar".

Romper / fusionar oraciones

Echemos un vistazo al archivo de demostración.

murciélago duplicado.TXT

Contiene una oración con espacios que dividen las palabras, a la derecha? Dividamos las palabras en nuevas líneas.

gato duplicado.txt | tr "" "\ n"

Este comando reemplazó todos los caracteres de espacio con caracteres de nueva línea.

Combinemos la oración rota en una oración larga nuevamente.

murciélago duplicado.TXT

gato duplicado.txt | tr "\ n" ""

Traduciendo personajes

Al igual que traducimos los caracteres antes, esta vez haremos lo mismo pero con un solo carácter.

demostración de gato.TXT

En este archivo, cambiemos todos los caracteres de nueva línea a un punto y coma.

demostración de gato.txt | tr "\ n" ";"

Tuve que envolverlo alrededor de "eco". De lo contrario, crearía algún resultado porque el último carácter de nueva línea también se traduciría en un punto y coma.

Hay una forma diferente de cambiar de personaje. Sin embargo, este es más difícil de controlar.

gato duplicado1.TXT

gato duplicado1.txt | tr -c 'd' 'z'

gato duplicado1.txt | tr -c 'd' 'z'

Guau! Vamos a envolverlo en "eco" para comprender mejor el resultado.

echo $ (gato duplicado1.txt | tr -c 'd' 'z')

Que pasó aquí? Usando la bandera "-c", "tr" solo mantendrá el carácter objetivo sin cambios. En el caso de que no coincidan, todos los demás personajes se transformarán. Aquí, cualquier carácter que no sea 'b' fue reemplazado por 'z'.

Traducir cadenas

"Tr" también puede funcionar con cadenas. Realicemos el reemplazo de cuerdas.

gato duplicado1.TXT

gato duplicado1.txt | tr "duplicar" "not_duplicate"

Mi cadena para reemplazar es más corta que la cadena por la que se reemplazará, por lo que no encajó.

Conjuntos de caracteres

A estas alturas, habrá notado que hay varios conjuntos de caracteres compatibles con "tr". Si bien algunos de ellos se usaron en los ejemplos anteriores, otros conjuntos de caracteres también son bastante útiles. Aquí hay una lista de todas las listas de personajes compatibles.

Conjuntos de caracteres POSIX

  • [: dígito:]: dígitos 0-9
  • [: alpha:]: alfabetos a-z y A-Z.
  • [: alnum:]: Caracteres alfanuméricos
  • [: punt:]: símbolos de puntuación
  • [: espacio:]: cualquier carácter de espacio en blanco, por ejemplo, espacio, tabulación, FF, CR, NL, FF, etc.
  • [: upper:]: todos los alfabetos en mayúsculas
  • [: lower:]: todos los alfabetos en minúscula
  • [: cntrl:]: todos los caracteres de control (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL, etc.)

Conjuntos de caracteres adicionales

  • [A-Z]: todos los alfabetos en mayúsculas
  • [a-z]: todos los alfabetos en minúsculas
  • [0-9]: todos los dígitos

Pensamientos finales

Hay muchas formas en que todas estas características de "tr" pueden beneficiar a los usuarios. Siempre recomiendo consultar todas las opciones disponibles y las guías detalladas sobre cualquier herramienta de Linux en sus páginas de manual, información y ayuda, ya que pueden ofrecer un conocimiento más valioso.

tr --ayuda

hombre tr

info tr

Disfrutar!

Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...
Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...