• ¡ Bienvenido al foro Invitado !

    Qué bueno tenerte aquí, siéntete cómodo de compartir todo: experiencias, ideas, imágenes, o lo que tengas en mente.

Cómo verificar si una cadena contiene una subcadena en Bash

niroqui

Administrator
Miembro del equipo
Mensajes
207
Reaction score
0
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.




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
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.


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.
 
Arriba Pie