Extraer subcadena en Bash

Fumbani Banda 30 enero 2023
  1. Utilice el comando cut para extraer subcadena en Bash
  2. Utilice la expansión de subcadena para extraer subcadena en Bash
  3. Utilice IFS para extraer subcadena en Bash
Extraer subcadena en Bash

Este tutorial demuestra diferentes formas de extraer una subcadena en bash usando el comando cut, la expansión de la subcadena y el Separador de campo interno (IFS).

Utilice el comando cut para extraer subcadena en Bash

El siguiente script utiliza el comando cut para extraer una subcadena. La opción -d especifica el delimitador que se utilizará para dividir la cadena en campos y la opción -f establece el número del campo a extraer.

En nuestro caso, la cadena se divide utilizando _ como delimitador, y para acceder al tercer campo, pasamos el argumento 3 a la opción -f.

#!/bin/bash

printf "Script to extract a substring!\n\n"

numbers='one_two_three_four_five'

printf "full string: $numbers\n"

substring=$(echo $numbers | cut -d '_' -f 3)
printf "substring: $substring\n"

Ejecute el script bash de la siguiente manera.

bash substring.sh

De la salida, se ha extraído una subcadena tree de la cadena one_two_three_four_five.

Script to extract a substring!

full string: one_two_three_four_five
substring: three

Utilice la expansión de subcadena para extraer subcadena en Bash

La expansión de subcadenas es una función de bash incorporada. Utiliza la siguiente sintaxis.

$(variable:offset:length)

La variable es el nombre de la variable que contiene la cadena. El desplazamiento se utiliza para especificar la posición desde donde comenzar la extracción de una cadena. La length se utiliza para especificar el rango de caracteres a extraer, excluyendo el desplazamiento.

El siguiente script establece el nombre de la variable como numbers, el offset se establece en 4 y la length de la cadena a extraer se establece en 3.

#!/bin/bash

printf "Script to extract a substring!\n\n"

numbers='one_two_three_four_five'
substring=${numbers:4:3}

printf "full string: $numbers\n"
printf "substring: $substring\n"

Ejecute el script bash de la siguiente manera.

bash substring.sh

De la salida, se ha extraído una subcadena two de la cadena one_two_three_four_five.

Script to extract a substring!

full string: one_two_three_four_five
substring: two

Utilice IFS para extraer subcadena en Bash

IFS son las siglas de Internal Field Separator. El IFS se usa para dividir palabras después de la expansión y para dividir líneas en palabras con el comando de lectura incorporado.

En el siguiente script, el IFS se ha establecido en _. Esto significa que debe dividir la cadena en la variable números usando _ como delimitador. Una vez dividida la cadena, podemos acceder a las palabras usando la sintaxis $[integer]. Se puede acceder a la primera palabra mediante $1, a la segunda palabra mediante $2, a la tercera palabra mediante $3, y así sucesivamente.

#!/bin/bash

printf "Script to extract a substring!\n\n"

numbers='one_two_three_four_five'
IFS="_"
set $numbers

printf "full string: $numbers\n"
printf "substring: $2\n"

Ejecute el script bash de la siguiente manera.

bash substring.sh

De la salida, se ha extraído una subcadena two de la cadena one_two_three_four_five.

Script to extract a substring!

full string: one_two_three_four_five
substring: two
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Artículo relacionado - Bash String