systemadmin.es > Script > Expresiones regulares en bash

Expresiones regulares en bash

Mediante bash sin utilizar otros programas como grep podemos utilizar expresiones regulares.

Mediante el operador =~ podemos comparar una cadena contra una expresión regular, por ejemplo:

$ if [[ qwerty =~ [0-9]+ ]]; then echo match; else echo fail; fi
fail
$ if [[ qwerty =~ [a-z]+ ]]; then echo match; else echo fail; fi
match

La expresión regular no debe ir entre comillas. Podemos utilizar una variable para evitar escapar los paréntesis y demás caracteres especiales:

(...)
REGEX="^systemadmin\.es-[a-z0-9]+-[a-z]+$"

if [[ $cadena =~ $REGEX ]];
(...)

2 comments to “Expresiones regulares en bash”

  1. Y si quiero usar expresiones regulares en un select?

    Por ejemplo le paso a mi script argumentos, pero quiero que reconozca los casos -a y a bajo un caso:

    case $1 in
    [-]?a)
    echo “quiero cubrir varios casos con una expresion regular”
    *)
    echo “aun no funciona”

    De antemano gracias, se que hay varias formas pero quiero usar directamente una expresion regular como un selector de case.


  2. entre caso y caso va el ;;

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>