Cómo reemplazar caracteres utilizando `tr` en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial lo guiará a través del proceso de uso del comando tr (traducir) en Linux para reemplazar, eliminar o traducir caracteres dentro de archivos de texto o la salida de comandos. El comando tr es una herramienta versátil que le permite realizar diversas transformaciones de texto, lo que lo convierte en un valioso recurso en su conjunto de herramientas de Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/TextProcessingGroup -.-> linux/tr("Character Translating") subgraph Lab Skills linux/tr -.-> lab-415206{{"Cómo reemplazar caracteres utilizando `tr` en Linux"}} end

Comprendiendo el comando tr

El comando tr, abreviatura de "translate" (traducir), es una poderosa utilidad de Linux que te permite reemplazar, eliminar o comprimir caracteres en una entrada dada. Es una herramienta versátil que se puede utilizar para una variedad de tareas de manipulación de texto, lo que la convierte en una parte esencial del conjunto de herramientas de un usuario de Linux.

¿Qué es el comando tr?

El comando tr es una utilidad estándar de Unix/Linux que se utiliza para traducir o eliminar caracteres de la entrada estándar (por lo general, un archivo o la salida de otro comando) y escribir el resultado en la salida estándar. Se puede utilizar para realizar diversas transformaciones de caracteres, como:

  • Reemplazar uno o más caracteres por otros caracteres.
  • Eliminar caracteres específicos.
  • Comprimir (o colapsar) caracteres repetidos en una sola aparición.

La sintaxis básica del comando tr es la siguiente:

tr [OPTION] SET1 [SET2]

Aquí, SET1 y SET2 son los conjuntos de caracteres que se van a traducir o eliminar. El parámetro OPTION se puede utilizar para especificar un comportamiento adicional, como --delete para eliminar los caracteres en SET1 o --squeeze-repeats para colapsar caracteres repetidos.

Comprendiendo los conjuntos de caracteres en tr

El comando tr opera sobre conjuntos de caracteres, que se definen utilizando una variedad de métodos:

  • Caracteres individuales: Puedes especificar caracteres individuales, como a, b o 1.
  • Rangos de caracteres: Puedes especificar un rango de caracteres utilizando el operador guion (-), como a-z o 0-9.
  • Clases de caracteres: Puedes utilizar clases de caracteres predefinidas, como [:upper:] para letras mayúsculas, [:lower:] para letras minúsculas y [:digit:] para dígitos.

Estos conjuntos de caracteres se pueden utilizar tanto en SET1 como en SET2 para definir los caracteres de entrada y salida, respectivamente.

Ejemplos prácticos

Exploremos algunos ejemplos prácticos de uso del comando tr:

  1. Reemplazar letras minúsculas por mayúsculas:

    echo "hello, world!" | tr "[:lower:]" "[:upper:]"

    Salida: HELLO, WORLD!

  2. Eliminar caracteres específicos:

    echo "abc123def" | tr -d "1-3"

    Salida: abcdef

  3. Comprimir caracteres repetidos:

    echo "hello   world" | tr -s " "

    Salida: hello world

Estos ejemplos demuestran la versatilidad del comando tr y cómo se puede utilizar para realizar diversas tareas de manipulación de texto. En la siguiente sección, profundizaremos en casos de uso más avanzados y aplicaciones prácticas del comando tr.

Reemplazando caracteres con tr

El caso de uso principal del comando tr es reemplazar caracteres en una entrada dada. Esto puede ser útil para diversas tareas de manipulación de texto, como la limpieza de datos, la conversión de formatos y las transformaciones de codificación de caracteres.

Sintaxis para reemplazar caracteres

La sintaxis básica para reemplazar caracteres utilizando el comando tr es la siguiente:

tr 'SET1' 'SET2'

Aquí, SET1 representa los caracteres que deseas reemplazar, y SET2 representa los caracteres que deseas utilizar como reemplazos. El comando tr reemplazará cada carácter en SET1 con el carácter correspondiente en SET2.

Por ejemplo, para reemplazar todas las letras minúsculas por sus equivalentes mayúsculas, puedes utilizar el siguiente comando:

echo "hello, world!" | tr "[:lower:]" "[:upper:]"

Salida:

HELLO, WORLD!

En este ejemplo, [:lower:] representa el conjunto de todas las letras minúsculas, y [:upper:] representa el conjunto de todas las letras mayúsculas. El comando tr reemplaza cada letra minúscula con su equivalente mayúscula.

Manejo de rangos de caracteres

También puedes utilizar rangos de caracteres para reemplazar un conjunto de caracteres. Por ejemplo, para reemplazar todos los dígitos con sus correspondientes letras mayúsculas, puedes utilizar el siguiente comando:

echo "abc123def" | tr "0-9" "A-J"

Salida:

abcABCdef

En este caso, 0-9 representa el rango de dígitos, y A-J representa el rango de letras mayúsculas de A a J. El comando tr reemplaza cada dígito con la letra mayúscula correspondiente.

Ejemplos prácticos

A continuación, se presentan algunos ejemplos prácticos más de cómo utilizar el comando tr para reemplazar caracteres:

  1. Reemplazar espacios con guiones bajos:

    echo "hello world" | tr " " "_"

    Salida: hello_world

  2. Reemplazar múltiples caracteres a la vez:

    echo "abc123def" | tr "a-c 3" "x-z 9"

    Salida: xyz129def

  3. Traducir la codificación de caracteres:

    echo "résumé" | tr "é" "e"

    Salida: resume

Estos ejemplos demuestran la flexibilidad del comando tr para realizar tareas de reemplazo de caracteres. Al entender la sintaxis y las diversas opciones de conjuntos de caracteres, puedes adaptar el comando tr para satisfacer tus necesidades específicas de manipulación de texto.

Aplicaciones prácticas de tr

El comando tr es una herramienta versátil que se puede utilizar en una amplia gama de escenarios prácticos. A continuación, se presentan algunas aplicaciones comunes del comando tr:

Limpieza y transformación de datos

Uno de los casos de uso más comunes del comando tr es la limpieza y transformación de datos. Por ejemplo, puedes utilizar tr para:

  • Eliminar caracteres no deseados de un archivo o entrada de texto.
  • Convertir texto a mayúsculas o minúsculas.
  • Normalizar texto reemplazando caracteres especiales o signos de puntuación.
## Remove non-alphanumeric characters from a file
cat file.txt | tr -cd '[:alnum:]'

## Convert a file to uppercase
cat file.txt | tr '[:lower:]' '[:upper:]'

## Replace commas with semicolons in a CSV file
cat file.csv | tr ',' ';'

Manipulación y formato de texto

El comando tr también se puede utilizar para diversas tareas de manipulación y formato de texto, como:

  • Eliminar espacios en blanco al principio y al final.
  • Reducir múltiples espacios en blanco a un solo espacio.
  • Reemplazar caracteres o palabras específicas.
## Remove leading and trailing spaces
echo "   hello, world!   " | tr -d '[:space:]'

## Collapse multiple spaces into a single space
echo "hello   world" | tr -s ' '

## Replace all occurrences of "foo" with "bar"
echo "foo is foo" | tr "foo" "bar"

Transformaciones de codificación

El comando tr puede ser útil para realizar transformaciones de codificación de caracteres, como:

  • Convertir entre diferentes codificaciones de caracteres (por ejemplo, ASCII a UTF-8).
  • Eliminar o reemplazar caracteres con acentos específicos.
## Remove accents from a string
echo "résumé" | tr "é" "e"

## Convert a file from ISO-8859-1 to UTF-8
iconv -f ISO-8859-1 -t UTF-8 file.txt | tr -d '\r'

Estos son solo algunos ejemplos de las aplicaciones prácticas del comando tr. Al entender sus capacidades y combinarlo con otras utilidades de Linux, puedes crear flujos de trabajo de procesamiento de texto potentes para satisfacer una amplia gama de necesidades.

Resumen

En este tutorial, has aprendido cómo utilizar el comando tr en Linux para reemplazar, eliminar o traducir caracteres en archivos de texto y la salida de comandos. Has explorado varios ejemplos y casos de uso, lo que demuestra el poder y la flexibilidad de esta herramienta de línea de comandos. Al dominar el comando tr, puedes optimizar tus tareas de procesamiento de texto y mejorar tu productividad general en el entorno Linux.