Bash et REGEXP

Résolu
LezardMoo Messages postés 554 Date d'inscription   Statut Membre Dernière intervention   -  
LezardMoo Messages postés 554 Date d'inscription   Statut Membre Dernière intervention   -
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 :)



A voir également:

4 réponses

Utilisateur anonyme
 
salut,

le $ marque la fin d'une ligne, i.e. la fin d'une regex.
par exemple
for 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
1
tuxboy Messages postés 995 Date d'inscription   Statut Membre Dernière intervention   190
 
Je n'ai rien compris, mais tu peux filtrer ton param avant avec la fonction "cut"
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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 ;-(
0
LezardMoo Messages postés 554 Date d'inscription   Statut Membre Dernière intervention   14
 
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
0