Eliminar caracteres de String in Bash

Eliminar caracteres de String in Bash

A veces, es posible que deba eliminar los caracteres de una cadena. Cualquiera sea la razón, Linux le proporciona varias herramientas incorporadas y útiles que le permiten eliminar los caracteres de una cadena en Bash. Este artículo le muestra cómo usar esas herramientas para eliminar los caracteres de una cadena.

El artículo cubre cómo realizar lo siguiente:

  • Eliminar el carácter de la cadena usando SED
  • Eliminar el carácter de la cadena usando AWK
  • Eliminar el carácter de la cadena usando corte
  • Eliminar el carácter de la cadena usando TR

Los comandos que se muestran en este artículo se realizaron en Ubuntu 20.04 fosa focal. Los mismos comandos también se pueden realizar en otras distribuciones de Linux que tienen las herramientas anteriores disponibles. Usaremos la aplicación terminal predeterminada para ejecutar los comandos. Puede acceder a la aplicación terminal utilizando el atajo de teclado Ctrl+Alt+T.

Eliminar los caracteres de la cadena usando SED

SED es una utilidad poderosa y útil utilizada para editar corrientes de texto. Es un editor de texto no interactivo que le permite realizar manipulaciones de texto básicas en las secuencias de entrada. También puede usar SED para eliminar los caracteres no deseados de las cuerdas.

Para fines de demostración, usaremos una cadena de muestra y luego la llevaremos al comando SED.

Eliminar el carácter específico de la cadena

Usando SED, puede eliminar un carácter específico de una cadena. Por ejemplo, para eliminar "H" de la cadena "hola, cómo estás?"El comando sería:

$ echo "hola, como estas?"| Sed 'S/H //'

Esto solo eliminará la primera aparición de 'H' en la cadena.

Para eliminar todas las ocurrencias de 'H' de la cadena, use el siguiente comando:

$ echo "hola, como estas?"| Sed 'S/H // G'

Dónde gramo significa Global. Eliminará todas las ocurrencias de 'H' en la cadena.

Eliminar el primer carácter de la cadena

Para eliminar el primer carácter de la cadena "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Sed 's/^.// '

Dónde (.) coincide exactamente con un solo carácter y (^) coincide con cualquier carácter al comienzo de la cadena.

Eliminar el último carácter de la cadena

Para eliminar el último carácter de la cadena "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Sed 's/.ps

Dónde (.) coincide exactamente con un solo carácter y ($) coincide con cualquier personaje al final de la cadena.

Eliminar el primer y último carácter de la cadena

Para eliminar el primer y último personaje de la cadena "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Sed 's/^.//;s/.ps

Eliminar los caracteres de la cadena usando AWK

AWK es un poderoso lenguaje de secuencias de comandos utilizado para la coincidencia de patrones, junto con el procesamiento de texto. AWK le permite filtrar y transformar texto de varias maneras. También puedes usar AWK para eliminar los personajes de las cuerdas.

Para fines de demostración, usaremos una cadena de muestra y luego la llevaremos al comando AWK.

Eliminar el primer carácter de una cadena

Para eliminar el primer carácter de la cadena "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Awk 'imprima sustr ($ 0, 2)'

Donde ($ 0) es la cadena de destino completa y (2) es la posición inicial del carácter. El comando anterior elimina el primer carácter, 'h,' número de caracteres '1', y devuelve la cadena de destino que comienza con el segundo carácter 'e.'

Eliminar los primeros dos caracteres de la cadena

También puede eliminar un número específico de caracteres desde el comienzo de una cadena. Por ejemplo, para eliminar los dos primeros caracteres de la cadena "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Awk 'imprima substr ($ 0, 3)'

El comando anterior eliminará los dos primeros caracteres, 'él' o los números de caracteres '1 y 2', y devuelve la cadena de destino que comienza con el número de caracteres '3,' o 'L.'

Eliminar el último carácter de la cadena

Para eliminar el último personaje de "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Awk 'imprima substr ($ 0, 1, longitud ($ 0) -1)'

Dónde longitud ($ 0) -1 significa deducir '1'De la longitud total del personaje.

El comando anterior imprimirá la cadena que comienza con el número de caracteres '1' hasta longitud ($ 0) -1 para quitar el último personaje.

Hay '19'caracteres (incluidos espacios) en la cadena anterior. El comando funcionará imprimiendo todos los caracteres, comenzando con el personaje '1'Y hasta el personaje'18,'Mientras elimina el último personaje'19.'

Eliminar los últimos dos caracteres de la cadena

Para eliminar los dos últimos personajes de "hola, cómo estás?"El comando sería:

$ echo "hola, como estas?"| Awk 'imprima sustr ($ 0, 1, longitud ($ 0) -2)'

Dónde longitud ($ 0) -2 significa deducir '2'De la longitud total del personaje.

El comando anterior imprimirá la cadena, comenzando con el número de caracteres '1'y hasta el número de personaje'longitud ($ 0) -2,'Para eliminar los dos últimos caracteres en la cadena.

Eliminar los primeros caracteres primero y los últimos de la cadena

Para eliminar el primero y los últimos caracteres de la cadena "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Awk 'imprima sustr ($ 0, 2, longitud ($ 0) - 2)'

Dónde longitud ($ 0) -2 significa deducir '2'De la longitud total del personaje.

El comando anterior imprimirá la cadena, comenzando con el número de caracteres '2'hasta el número de personaje'longitud ($ 0) -2,'Para eliminar el primer y último personaje.

Eliminar el carácter de la cadena usando corte

Cut es una herramienta de línea de comandos comúnmente utilizada para extraer una parte del texto de una cadena o archivo e imprimir el resultado en una salida estándar. También puede usar este comando para eliminar los caracteres de una cadena.

Para fines de demostración, usaremos una cadena de muestra y luego la llevaremos al comando de corte.

Eliminar el primer carácter de la cadena

Para eliminar el primer personaje de la cadena, "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| CORT -C 2-

Este comando imprimirá la cadena, comenzando con el segundo carácter, mientras elimina el primer personaje.

Eliminar los primeros cuatro caracteres de la cadena

Para eliminar los primeros cuatro caracteres de la cadena "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Cortar -C 5-

Este comando imprimirá la cadena, comenzando desde el quinto personaje, mientras elimina los primeros cuatro caracteres.

Imprimir cadena entre el segundo y quinto personajes

Para imprimir la cadena "hola, cómo estás?" entre el segundo y quinto personajes, El comando sería:

$ echo "hola, como estas?"| Cortar -C 2-5

Este comando imprimirá la cadena, comenzando desde el segundo carácter y hasta el quinto personaje, mientras elimina los caracteres iniciales y finales restantes.

Eliminar el último carácter de la cadena

Para eliminar el último carácter de la cadena "hola, cómo estás?" utilizar el cortar ordenar con Rdo, como sigue:

$ echo "hola, como estas?"| Rev | Cut -C2- | Rev

Este comando funciona invirtiendo primero la cadena, luego cortando el primer carácter, y finalmente revertirlo nuevamente para darle la salida deseada.

Eliminar los últimos cuatro caracteres de la cadena

Para eliminar los últimos cuatro caracteres de la línea "hola, cómo estás?" El comando sería:

$ echo "hola, como estas?"| Rev | Cut -C5- | Rev

Este comando funciona invirtiendo primero la cadena, luego cortando los primeros cuatro caracteres, y luego volviendo a invertirlo para darle la salida deseada.

Eliminar los primeros y los últimos caracteres de la cadena

Para eliminar los primeros y los últimos caracteres de la cadena "hola, cómo estás?" utilizar el cortar ordenar con Rdo, como sigue:

$ echo "Hola mundo!"| CUT -C2- | Rev | CUT -C2- | Rev

Este comando funciona cortando el primer carácter, luego invirtiendo la cadena y cortando su primer carácter, y luego volviendo a invertirlo para darle la salida deseada.

Eliminar el carácter de la cadena usando TR

El comando TR (abreviatura de traducir) se usa para traducir, exprimir y eliminar caracteres de una cadena. También puede usar TR para eliminar los caracteres de una cadena.

Para fines de demostración, usaremos una cadena de muestra y luego la llevaremos al comando TR.

Eliminar todos los acontecimientos de carácter

Usando el comando TR, puede eliminar todas las ocurrencias de caracteres minúsculas o mayúsculas de su cadena. Por ejemplo, para eliminar todas las ocurrencias del carácter en minúscula 'H' de la cadena, el comando sería:

$ echo "hola, como estas?"| Tr -d H

Del mismo modo, para eliminar todas las ocurrencias del carácter superior 'H' de la cadena, el comando sería:

$ echo "hola, como estas?"| Tr -d H

También puede usar secuencias interpretadas para eliminar letras minúsculas o mayúsculas:

$ echo "hola, como estas?"| tr -d [: superior:]
$ echo "hola, como estas?"| tr -d [: inferior:]

Eliminar todas las ocurrencias de caracteres minúsculas y mayúsculas

También puede eliminar todas las ocurrencias de caracteres minúsculas y mayúsculas de una cadena. Por ejemplo, el siguiente comando eliminará todas las ocurrencias del personaje 'H', tanto en minúscula como en mayúsculas.

$ echo "hola, como estas?"| Tr -d 'HH'

Eliminar todas las ocurrencias de personajes en un rango específico

Para eliminar todas las ocurrencias de caracteres de una cadena en el rango específico 'D-H', el comando sería:

$ echo "hola, como estas?"| tr -d 'd -h'

Este comando eliminará todos los caracteres en el rango 'D-H' (D, E, F, G, H) en la cadena.

Conclusión

En Linux, siempre habrá más de una forma de lograr un trabajo simple. Lo mismo es cierto con la eliminación de caracteres de una cadena. Este artículo le mostró cuatro formas diferentes de hacerlo, junto con algunos ejemplos para eliminar los caracteres no deseados de una cadena. Decidir qué herramienta usar todo depende de sus preferencias y, lo que es más importante, de lo que desea lograr.