[Linux Bash] comparaison et regexp

Fermé
santiago69 Messages postés 477 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 septembre 2016 - 28 mars 2008 à 16:13
 bash_tip - 30 avril 2008 à 14:52
Salut a tous,

Quelqu'un sait il comment faire une comparaison entre une chaine et une expression reguliere

par exemple comment renvoyer vrai dans l'egalite suivante ?
"santiago,diez" = "[a-z]+,[a-z]+"

et faux dans celle-ci (a cause des majuscules) :
"santiago,DIEZ" = "[a-z]+,[a-z]+"

Ce ne sont que des exemple, j'aimerais savoir de maniere generale s'il existe une syntaxe permettant de faire ce genre de comparaison et qui puisse s'inserer dans une instruction if.

Voila merci de votre aide
Santiago

2 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
28 mars 2008 à 17:01
houlalal, dur la question.
Je ne sais pas si je vais beaucoup t'aider, mais ce que j'ai trouvé de plus approchant, c'est :
if (("abc"=="abc")) ;then  echo "OK";fi
Je n'ai pas réussi à utiliser les [a,z].
Je te conseil de regarder dans "man bash" sur la grammaire du shell. Peut-être que quelque chose du genre
(("abc"=="abc"))
fonctionnerai.
0
santiago69 Messages postés 477 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 septembre 2016 209
28 mars 2008 à 17:05
Merci Char Snipeur mais en fait je cherche a faire une comparaison avec des expressions regulieres.
0
Salut,

Tu peux utiliser un case

case WORD in
glob [| glob]...) COMMANDS ;;
regex [| regex]...)) COMMANDS ;;
...
esac
0