Androide

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

Python Tutorial: Slicing Lists and Strings

Python Tutorial: Slicing Lists and Strings

Tabla de contenido:

Anonim

Una de las operaciones más comunes cuando se trabaja con cadenas en Bash es determinar si una cadena contiene o no otra cadena., le mostraremos varias formas de verificar si una cadena contiene una subcadena.

Usando comodines

El enfoque más fácil es rodear la subcadena con símbolos de asterisco comodín (asterisco) * y compararlo con la cadena. El comodín es un símbolo utilizado para representar cero, uno o más caracteres.

Si la prueba devuelve true , la subcadena está contenida en la cadena.

En el siguiente ejemplo, estamos usando la instrucción if y el operador de igualdad ( == ) para verificar si la subcadena SUB se encuentra dentro de la cadena STR :

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Cuando se ejecute, el script generará:

It's there.

Usando el operador de caso

En lugar de usar la declaración if, también puede usar la declaración case para verificar si una cadena incluye o no otra cadena.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

Usando el operador Regex

Otra opción para determinar si se produce una subcadena especificada dentro de una cadena es usar el operador regex =~ . Cuando se usa este operador, la cadena derecha se considera como una expresión regular.

El período seguido de un asterisco .* Coincide con cero o más ocurrencias de cualquier carácter, excepto un carácter de nueva línea.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

El script hará eco de lo siguiente:

It's there.

Usando Grep

El comando grep también se puede usar para buscar cadenas en otra cadena.

En el siguiente ejemplo, estamos pasando la cadena $STR como entrada a grep y comprobando si la cadena $SUB se encuentra dentro de la cadena de entrada. El comando devolverá true o false según corresponda.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

La opción -q le dice a grep que sea silencioso, que omita la salida.

Conclusión

Verificar si una cadena contiene una subcadena es una de las operaciones más básicas y de uso frecuente en las secuencias de comandos Bash.

Después de leer este tutorial, debe comprender bien cómo probar si una cadena incluye otra cadena. También puede usar otros comandos como awk o sed para realizar pruebas.

terminal de bash