Mientras trabajas con cadenas en Bash necesitas comprobar si una cadena contiene otra cadena. En esta guía, le mostraremos múltiples formas de comprobar si una cadena contiene una subcadena en bash scripting.
Es fácil usar símbolos comodín (asterisco) * para comparar con la cadena. Comodín es un símbolo utilizado para representar cero, uno o más caracteres. Si la cadena contiene la cadena devolverá verdadero.
Veamos un ejemplo, estamos utilizando la sentencia if con el operador de igualdad (==) para comprobar si la subcadena SUBSTR se encuentra dentro de la cadena STR:
String está ahí.
Utilizar el operador case
Puede utilizar la sentencia case en lugar de la sentencia if para comprobar si una cadena incluye o no a otra cadena.
Uso del operador regex
Otra forma es utilizar el operador regex =~ para comprobar si una subcadena especificada aparece dentro de una cadena. Cuando se utiliza este operador, la cadena correcta se considera una expresión regular.
El punto seguido de un asterisco .* coincide con cero o más apariciones de cualquier carácter excepto un carácter de nueva línea.
El script se hará eco de lo siguiente:
La cadena está ahí
Uso de Grep
El comando grep también se puede utilizar para encontrar cadenas dentro de otra cadena.
En el siguiente ejemplo, estamos dando cadena en la variable $STR a grep y comprobar si la cadena $SUBSTR se encuentra dentro de la cadena. Devolverá verdadero o falso.
Conclusión
En este artículo, has aprendido cómo comprobar una subcadena contiene en la cadena dada utilizando múltiples formas en Bash script.
Si tienes alguna pregunta o comentario, siéntete libre de dejar un comentario.
Usar Comodines
Es fácil usar símbolos comodín (asterisco) * para comparar con la cadena. Comodín es un símbolo utilizado para representar cero, uno o más caracteres. Si la cadena contiene la cadena devolverá verdadero.
Veamos un ejemplo, estamos utilizando la sentencia if con el operador de igualdad (==) para comprobar si la subcadena SUBSTR se encuentra dentro de la cadena STR:
Código:
#!/bin/bash
STR='Ubuntu is a Linux OS'
SUBSTR='Linux'
if [[ "$STR" == *"$SUBSTR"* ]]; then
echo "String is there."
fi
It will show following output:
String está ahí.
Utilizar el operador case
Puede utilizar la sentencia case en lugar de la sentencia if para comprobar si una cadena incluye o no a otra cadena.
Código:
#!/bin/bash
STR='Ubuntu is a Linux OS'
SUBSTR='Linux'
case $STR in
*"$SUBSTR"*)
echo -n "String is there."
;;
esac
Uso del operador regex
Otra forma es utilizar el operador regex =~ para comprobar si una subcadena especificada aparece dentro de una cadena. Cuando se utiliza este operador, la cadena correcta se considera una expresión regular.
El punto seguido de un asterisco .* coincide con cero o más apariciones de cualquier carácter excepto un carácter de nueva línea.
Código:
#!/bin/bash
STR='Ubuntu is a Linux OS'
SUBSTR='Linux'
if [[ "$STR" =~ .*"$SUBSTR".* ]]; then
echo "String is there"
fi
La cadena está ahí
Uso de Grep
El comando grep también se puede utilizar para encontrar cadenas dentro de otra cadena.
En el siguiente ejemplo, estamos dando cadena en la variable $STR a grep y comprobar si la cadena $SUBSTR se encuentra dentro de la cadena. Devolverá verdadero o falso.
Código:
#!/bin/bash
STR='Ubuntu is a Linux OS'
SUBSTR='Linux'
if grep -q "$SUB" <<< "$STR"; then
echo "String is there"
fi
Conclusión
En este artículo, has aprendido cómo comprobar una subcadena contiene en la cadena dada utilizando múltiples formas en Bash script.
Si tienes alguna pregunta o comentario, siéntete libre de dejar un comentario.