GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Tr en Linux con ejemplos

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 tr El comando puede realizar operaciones como eliminar caracteres repetidos, convertir mayúsculas a minúsculas y reemplazar y eliminar caracteres básicos. Por lo general, se usa en combinación con otros comandos a través de tuberías.

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

Cómo usar el tr Comando #

La sintaxis para tr El comando es el siguiente:

tr OPTION... SET1 [SET2]

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

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

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

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

Cada ocurrencia de l se reemplaza con r , i con e y n con d :

reduxeze

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

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

puedes usar:

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" se reemplazarán con el último carácter del segundo conjunto:

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

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

El -d (--delete ) la opción le dice a tr para eliminar los caracteres especificados en SET1. Cuando elimine caracteres sin apretarlos, especifique solo un conjunto.

El siguiente comando eliminará l , i y z caracteres:

echo 'Linuxize' | tr -d 'liz'

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

Lnuxe

El -s (--squeeze-repeats ) La opción reemplaza una secuencia de ocurrencias repetidas con el juego 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 con SET2.

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

El -t (--truncate-set1 ) la opción fuerza tr para truncar SET1 a la longitud de SET2 antes de continuar con el procesamiento.

Por defecto, si SET1 es mayor que SET2 tr reutilizará el último carácter de SET2. Aquí hay un ejemplo:

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

La salida muestra que el carácter e de SET1 coincide con el último carácter de SET2, que es 2 :

Linux iz2

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

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

Puede ver que se eliminan los últimos tres caracteres del SET1. SET1 se convierte en 'ab', la misma longitud que SET2, y no se realiza ningún reemplazo.

Opciones de combinación #

El tr comando también le permite combinar sus opciones. Por ejemplo, el siguiente comando primero reemplaza todos los caracteres excepto i con 0 y luego aprieta el 0 repetido caracteres:

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

Ejemplos de comandos Tr #

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

Convertir minúsculas a mayúsculas #

Convertir minúsculas a mayúsculas o al revés es uno de los casos de uso típicos del tr dominio. [:lower:] coincide con todos los caracteres en minúsculas y [:upper:] coincide con todos los caracteres en mayúsculas.

echo 'Linuxize' | tr '[:lower:]' '[:upper:]'
LINUXIZE

En lugar de clases de caracteres, también puedes usar rangos:

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

Para convertir mayúsculas a minúsculas, simplemente cambie 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 [:digit:]

[:digit:] representa todos los caracteres de dígitos, y al usar -c opción, el comando elimina todos los caracteres que no sean dígitos. La salida se verá así:

1234567890

Colocar cada palabra en una nueva línea #

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

echo 'GNU is an operating system' | tr -cs '[:alnum:]' '\n'
GNU
is
an
operating
system

Eliminar líneas en blanco #

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 usando el símbolo de redirección < para pasar el contenido del file.txt al tr dominio. La redirección > escribe la salida del comando en new_file.txt .

Imprimir $PATH directorios en una línea separada #

El $PATH variable ambiental es una lista de directorios delimitada por dos puntos que le dice al shell en qué directorios buscar archivos ejecutables cuando escribe un comando.

Para imprimir cada directorio en una línea separada, debemos hacer coincidir los dos puntos (: ) y reemplácelo con la nueva línea:

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

Conclusión #

tr es un comando para traducir o borrar caracteres.

Aunque muy útil, tr solo puede funcionar con caracteres individuales. Para coincidencias de patrones más complejas y manipulación de cadenas, debe usar sed o awk .

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando de clasificación de Linux con ejemplos

  3. Comando Linux Tee con ejemplos

  4. Comando de cabeza de Linux con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando de espera en Linux con ejemplos

Comando de exportación de Linux con ejemplos

Comando de reinicio en Linux con ejemplos

Comando IP de Linux con ejemplos

Comando tr de Linux con ejemplos