Bash et REGEXP
Résolu
LezardMoo
Messages postés
614
Statut
Membre
-
LezardMoo Messages postés 614 Statut Membre -
LezardMoo Messages postés 614 Statut Membre -
Bonjour tout le monde !!!
je suis entrain d'écrire une ptit script dans lequel j'aimerais tester la syntax d'un paramètre.
if [[ $1 =~ /dev/[a-]{3} ]]
en fait je voudrais tester si le param 1 a pour valeur /dev/hda mais je voudrais que le test soit vrai uniquement sil y a 3 alpha.
le problème est que si plus de 3 alpha, le test est quand meme bon donc problème, on sait tous q'un part se nomme de cette manière /dev/hdX ou /dev/sdX
voila jespère etre comprehenssible...
Merci d'avance :)
je suis entrain d'écrire une ptit script dans lequel j'aimerais tester la syntax d'un paramètre.
if [[ $1 =~ /dev/[a-]{3} ]]
en fait je voudrais tester si le param 1 a pour valeur /dev/hda mais je voudrais que le test soit vrai uniquement sil y a 3 alpha.
le problème est que si plus de 3 alpha, le test est quand meme bon donc problème, on sait tous q'un part se nomme de cette manière /dev/hdX ou /dev/sdX
voila jespère etre comprehenssible...
Merci d'avance :)
4 réponses
-
salut,
le $ marque la fin d'une ligne, i.e. la fin d'une regex.
par exemplefor i in /dev/*; do [[ $i =~ /dev/[a-z]{3}$ ]] && echo "$i"; done /dev/bsg /dev/bus /dev/dri /dev/log /dev/mem /dev/net /dev/ppp /dev/pts /dev/rtc /dev/sda /dev/shm /dev/snd /dev/tty /dev/vcs -
Je n'ai rien compris, mais tu peux filtrer ton param avant avec la fonction "cut"
-
Salut,
en fait je voudrais tester si le param 1 a pour valeur /dev/hda mais je voudrais que le test soit vrai uniquement sil y a 3 alpha.
Euh... ce n'est pas clair tout ça ;-(
-
j'était parti pour la refaire mais merci, j'avais pensé au cut mais pas a la fin de ligne.
Merci a tous pour la réactivité et qqchquicommenceparQ pour la réponse.
Bonne aprem,
PS/ je suis en train d'apprendre les expression régulière, c'est pas gagné xD