[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Dica - Expressao regular no IF (bash)
From: |
Marcus Vinicius |
Subject: |
Dica - Expressao regular no IF (bash) |
Date: |
Sun, 29 Jul 2007 07:30:18 -0700 (PDT) |
Pessoal, segue uma diquinha de como usar expressões regulares no if do bash.
Vejo muita gente usando comandos externos como egrep, sed, awk e outros para
fazer uma simples comparação de er que o próprio bash (nas novas versões) sabe
fazer muito bem.
Veja como a sintaxe eh simples:
[[ "Texto" =~ "regexp" ]] &&
comando;
ou
[[ "Texto" =~ "regexp" ]] && {
comando 1;
comando 2;
comando n;
}
Quando o operador =~ eh usado a string ao lado direito do operador eh
considerada uma experssão regular. O valor de retorno eh 0 caso a string case
com o padrão, e 1 do contrário.
Exemplos:
# echo $BASH_VERSION
3.00.0(1)-release
# string="12345"
# [[ $string =~ "^[0-9]{1,}$" ]] && echo "Casou"
Casou
# string="Linux12345"
# [[ $string =~ "^[0-9]{1,}$" ]] && echo "Casou"
#
# hora="1h20m32s"
# [[ ${hora} =~ "^[0-9]{1,}[h][0-9]{1,}[m][0-9]{1,}[s]$" ]] && echo "Casou"
Casou
Espero que a dica seja aproveitada.
Abraços.
Marcus Vinícius
Flickr agora em português. Você cria, todo mundo vê.
http://www.flickr.com.br/
[As partes desta mensagem que não continham texto foram removidas]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Dica - Expressao regular no IF (bash),
Marcus Vinicius <=