Extraer subcadena en Bash
-
Utilice el comando
cut
para extraer subcadena en Bash - Utilice la expansión de subcadena para extraer subcadena en Bash
-
Utilice
IFS
para 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