Articles

Usando el comando tr en Linux para jugar con caracteres

Posted by admin

el comando tr en Linux traduce un conjunto de caracteres a otro. Puede reemplazar un carácter o un conjunto de caracteres Por otro carácter o conjunto de caracteres. tr lee la entrada de la entrada estándar y muestra el resultado en la salida estándar. La entrada también se puede dar en un archivo o mediante el comando echo.

tr es la abreviatura de translate.,

El formato estándar para tr comando :

$ tr 

a partir de la opción(s) especifica el tr comando reemplaza el conjunto de caracteres en «set 1» por «2».

reemplazar caracteres

para reemplazar caracteres usando el comando tr simplemente mencione los caracteres que se reemplazarán en el 1er conjunto y los caracteres que se pondrán en su lugar después de reemplazarlos en el 2do conjunto.

$ tr 'a' '1'

Este comando esperará la entrada de STDIN., Después de obtener la entrada, la salida en la pantalla aparecerá con todas las instancias de ‘a’ reemplazadas por ‘1’.

el Uso de echo con tr comando

El ejemplo anterior se lee la entrada desde STDIN. El comando Echo puede proporcionar entrada junto con el comando tr. Utilice el operador Pipe (|) para ejecutar los comandos juntos.,

$ echo "apples and bananas" | tr 'a' '1'

Toma de entrada de un archivo

tr también puede tomar su entrada desde un archivo. Esto es útil cuando la traducción debe hacerse sobre una colección voluminosa de texto. El operador Redirection (<) se utiliza para dar entrada desde un archivo.

$ tr 'a' '1' < input.txt

la entrada.txt contiene el mismo texto que el ejemplo anterior.,

para guardar el texto en un archivo utilice el operador redirección(>) para redirigir la salida a un archivo.

$ tr 'a' '1' < input.txt > output.txt

cambiar las mayúsculas y minúsculas del texto con el comando tr

uno de los usos más comunes del comando tr es traducir texto de minúsculas a mayúsculas o viceversa.

Como tr funciona en conjuntos de caracteres, podemos mencionar explícitamente el conjunto de caracteres en minúsculas como conjunto 1 y el conjunto de caracteres en mayúsculas como conjunto 2 para hacer el cambio.,

$ echo "apples and bananas" | tr a-z A-Z

El Conjunto a-z representa el conjunto de letras minúsculas y el conjunto A-Z representa el conjunto de letras mayúsculas.

otra forma de hacer lo mismo es :

$ echo "apples and bananas" | tr 

aquí, representa el conjunto de alfabetos en minúsculas y representa el conjunto de alfabetos en mayúsculas.

Borrar personajes con tr

tr tiene la capacidad de eliminar un conjunto de caracteres del texto. Esto se logra usando tr junto con el comando-D.,

$ echo "apples and bananas" | tr -d 'n'

Este comando eliminará todas las ocurrencias de ‘n’ en el texto.

Para eliminar las apariciones de varios personajes, mencionar a todos los personajes en una sola cita.

$ echo "apples and bananas" | tr -d 'na'

con Este comando eliminará las apariciones de ‘n’ y ‘a’

a partir de tr trabaja en el nivel del personaje, todas las apariciones de ‘n’ y la ‘a’ se quitan., Es fácil equivocarse y pensar que el comando solo eliminará las ocurrencias de ‘na’ que ocurren en esa secuencia. Sin embargo, ese no es el caso.

comprimir múltiples ocurrencias en una

comprimir múltiples ocurrencias en una puede ser útil para comprimir el texto. A menudo se usa para eliminar instancias de espacio múltiple entre líneas.

– la opción S Se utiliza con tr para exprimir.,

$ echo "apples and bananas" | tr -s 'p'

Múltiples ocurrencias de ‘p’ en apple se han reducido a una sola aparición.

$ echo "apples and bananas" | tr -s 'na' '1'

El resultado de este comando es equivalente a la de la primera colocación de las apariciones de los personajes de ‘n’ y ‘a’ con ‘1’, seguido por un apretón de operación. Para comparar mira el segundo comando en la salida., El resultado del segundo comando es una simple sustitución de caracteres.

vamos a exprimir todos los 1 en la salida del segundo comando para ver si obtenemos la misma salida que la primera.

obtenemos el mismo resultado que el primer comando en la salida.,

para eliminar espacios en blanco consecutivos en el texto use :

$ echo "apples and bananas" | tr -s " " 

alternativamente se puede utilizar en lugar de » «

$ echo "apples and bananas" | tr -s 

extrayendo dígitos del texto

para lograr operaciones donde solo se necesita conservar un conjunto particular de caracteres. Es mejor usar la opción-c. -c se utiliza para complementar el conjunto.

complemento de un conjunto significa todo lo demás que no sea lo que está en ese conjunto.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n' 

Mencionar a ‘\n’ (newline) es importante, ya que de lo contrario, la salida no tiene un salto de línea y se mezcla con la siguiente línea en la terminal. Otra razón para no ignorar las nuevas líneas al eliminar caracteres es que su archivo podría tener varios dígitos en varias líneas. Si se elimina el carácter de nueva línea, entonces todos los números aparecerán juntos sin ningún espacio.,

sin ‘\n’

la Extracción de palabras de texto

Este proceso es el opuesto exacto de la realizada anteriormente. Aquí ignoraremos los dígitos y nos enfocaremos solo en palabras compuestas de letras.

$ echo " Home : 011 1234 4321" | tr -d 

En este ejemplo simplemente hemos eliminado todos los dígitos de texto.

una forma más controlada de hacer lo mismo sería a través del complemento.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n'

representa el conjunto de alfabetos. Piense en ello como una colección de los dos conjuntos, inferior y superior.

 = + 

Contar el número de ocurrencias de palabras

Contar cuántas veces aparece una palabra en un texto puede ser útil para construir histogramas. También es muy útil en la construcción de modelos probabilísticos para la detección de spam de correo electrónico.

primero, vamos a crear un archivo con algunas palabras recurrentes.,

a Veces puede ser útil para mostrar cada palabra del texto en una nueva línea.

$ tr -cs "" "\n" < input.txt
y La lista continúa. La salida ha sido cortado para adaptarse

Para obtener el número de aparición de cada palabra de uso:

$ tr -cs "" "\n" < input.txt | sort | uniq -c

Ordenar se utiliza para ordenar la lista de lexicográficamente., uniq-c cuenta las ocurrencias individuales de cada palabra y muestra el resultado como una lista de palabras con un conteo.

conclusión

el comando tr es útil para realizar traducciones basadas en caracteres. Cuando se combina con otros comandos como sort o uniq, el comando tr puede resultar muy poderoso. Lea más sobre el comando tr en su página de manual. Al aplicar transformaciones sobre una línea completa, se puede usar el comando sed.

Leave A Comment