¿Cómo puedo hacer una coincidencia de expresiones regulares como se muestra a continuación pero con comillas alrededor de ("^ This") como en el mundo real "Esto" será una cadena que puede tener espacios en ella.Regex hacer coincidir una cadena con espacios (¿usar comillas?) En una instrucción if
#!/bin/bash
text="This is just a test string"
if [[ "$text" =~ ^This ]]; then
echo "matched"
else
echo "not matched"
fi
quiero hacer algo como
if [[ "$text" =~ "^This is" ]]; then
pero esto no coincide.
+1 Esta es sin duda la manera de hacerlo. Las expresiones regulares Bash utilizadas con '= ~' deberían ser las más frecuentes (¿siempre?) Sin comillas. –
Eso es bueno para escuchar. Nunca antes había usado expresiones regulares bash, solo experimenté y encontré que funcionó. * En S.O., ¡es correcto hasta que se demuestre lo contrario! * –
FWIW, esto cambió entre Bash 3.1 y Bash 3.2. Bash 4.0 tiene un 'shopt -s/-u compat31' configurable para alternar entre los comportamientos. – ephemient