tr es una utilidad de línea de comandos en sistemas Linux y Unix que traduce, elimina y comprime caracteres de la entrada estándar y escribe el resultado en la salida estándar.

el comando tr puede realizar operaciones como eliminar caracteres repetidos, convertir mayúsculas a minúsculas y reemplazar y eliminar caracteres básicos. Por lo general, se utiliza en combinación con otros comandos a través de tuberías.,

en este tutorial, le mostraremos cómo usar el comando tr a través de ejemplos prácticos y explicaciones detalladas de las opciones más comunes.

cómo usar el comando tr #

la sintaxis para el comando tr es la siguiente:

tr OPTION... SET1 

tr acepta dos conjuntos de caracteres, generalmente con la misma longitud, y reemplaza los caracteres de los primeros conjuntos con los caracteres correspondientes del segundo conjunto.,

a SET es básicamente una cadena de caracteres, incluidos los caracteres especiales de escape de barra invertida.

en el siguiente ejemplo, tr reemplazará todos los caracteres de la entrada estándar (linuxize), mapeando los caracteres del primer conjunto con los coincidentes del segundo conjunto.,

echo 'linuxize' | tr 'lin' 'red'

Cada ocurrencia de l es reemplazado con la etiqueta r, i e, y n d:

reduxeze

Los conjuntos de caracteres también se pueden definir utilizando rangos de caracteres., Por ejemplo, en lugar de escribir:

echo 'linuxize' | tr 'lmno' 'wxyz'

puede utilizar:

echo 'linuxize' | tr 'l-n' 'w-z'

Cuando -c (--complement) se utiliza la opción, tr reemplaza todos los caracteres que no están en SET1.

en el siguiente ejemplo, todos los caracteres excepto «li»serán reemplazados por el último carácter del segundo conjunto:

echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy

como puede haber notado, la salida anterior tiene un carácter más visible que la entrada., Esto se debe a que el comando echo imprime un carácter invisible de nueva línea \nque también se reemplaza por y. Para hacer eco de una cadena sin una nueva línea, utilice la opción -n.

la opción-d (--delete) le dice atr que elimine los caracteres especificados en SET1. Al eliminar caracteres sin apretar, especifique solo un conjunto.,

El comando a continuación eliminará l, i y z personajes:

echo 'Linuxize' | tr -d 'liz'

El L personaje no se elimina, porque la entrada incluye una mayúscula L mientras que el l carácter del CONJUNTO está en minúscula.

Lnuxe

El -s (--squeeze-repeats) opción sustituye una secuencia de incidentes repetidos con el conjunto de caracteres en el último SET.,

en el siguiente ejemplo, tr elimina los caracteres de espacio repetidos:

echo "GNU \ Linux" | tr -s ' '
GNU \ Linux

cuando se usa SET2, la secuencia del carácter especificado en SET1 se reemplaza por SET2.

echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux

El -t (--truncate-set1) opción fuerzas tr truncar SET1 a la longitud de SET2 antes de hacer su posterior procesamiento.,

de forma predeterminada, si SET1 es mayor que SET2 tr reutilizará el último carácter de SET2. He aquí un ejemplo:

echo 'Linux ize' | tr 'abcde' '12'

El resultado muestra que el carácter e desde SET1 coincide con el último carácter de SET2, que es 2:

Linux iz2

Ahora, utilice el mismo comando con el -t opción:

echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize

Usted puede ver que los tres últimos caracteres de la SET1 se quitan., SET1 se convierte en ‘ab’, la misma longitud que SET2, y no se hace ningún reemplazo.

Combining options #

el comandotr también le permite combinar sus opciones. Por ejemplo, el siguiente comando reemplaza primero todos los caracteres excepto i con 0 y luego comprime los caracteres repetidos 0:

echo 'Linux ize' | tr -cs 'i' '0'
0i0i0

TR command examples #

en esta sección, cubriremos algunos ejemplos de usos comunes del comando tr.,

convertir minúsculas a mayúsculas #

convertir minúsculas a mayúsculas o a la inversa es uno de los casos de uso típicos del comando tr. coincide con todos los caracteres en minúsculas y coincide con todos los caracteres en mayúsculas.

echo 'Linuxize' | tr '' ''
LINUXIZE

en Lugar de clases de personaje, también puede utilizar rangos:

echo 'Linuxize' | tr 'a-z' 'A-Z'

convertir mayúsculas a minúsculas, sólo tiene que cambiar los lugares de los conjuntos.,

eliminar todos los caracteres no numéricos #

el siguiente comando elimina todos los caracteres no numéricos:

echo "my phone is 123-456-7890" | tr -cd 

significa todos los caracteres de dígitos, y al usar la opción -c, el comando elimina todos los caracteres no numéricos personajes.,se verá así:

1234567890

poner cada palabra en una nueva línea #

para poner cada palabra en una nueva línea, necesitamos hacer coincidir todos los caracteres no alfanuméricos y reemplazarlos con una nueva línea:

echo 'GNU is an operating system' | tr -cs '' '\n'
GNUisanoperatingsystem

remove blank lines #

para eliminar las líneas en blanco simplemente apriete los caracteres de nueva línea repetitivos:

tr -s '\n' < file.txt > new_file.txt

en el comando anterior estamos utilizando el símbolo de redirección < para pasar el contenido del file.txt al comando tr., La redirección > escribe la salida del comando a new_file.txt.

Print directories PATH directories on a separate line #

la variable ambiental$PATH es una lista de directorios delimitada por dos puntos que indica al shell qué directorios buscar archivos ejecutables cuando se escribe un comando.,

para imprimir cada directorio en una línea separada necesitamos coincidir con los dos puntos (:) y reemplazarlo con la nueva línea:

echo $PATH | tr ':' '\n'
/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin

Conclusion #

tr es un comando para traducir o eliminar caracteres.

aunque es muy útil, tr solo puede funcionar con caracteres individuales. Para una coincidencia de patrones más compleja y manipulación de cadenas, debe usar sed o awk .

Deja una respuesta

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