Bonjour ,
j'ai un petit problème concernant l'utilisation des expréssions régulières dans awk .
a) si lors d'un test dans awk j'ai la ligne suivante :
if( chaine ~ /^.*g$/ ){ print "bon" }
else { print "pas bon" }
avec chaine de la forme aaaag , "bon" sera affiché
avec chaine de la forme aaaaG , "pas bon" sera affiché
b) pas contre si maintenant j'ai la ligne suivante :
if( chaine ~ /^[a-z]*$/){ print "minuscule"}
else{ print "pas minuscule"}
quelques soient la chaîne comportant des minuscules et des majuscules
j'aurais toujours comme resultat affiché "minuscule "
idem si j'ai
if( chaine ~ /^[A-Z]*$/){ print "majuscule"}
else{ print "pas majuscule"}
question : quand dans l'expression régulière je désigne un caractère , la prise en compte de la casse est effective , par contre quand je désigne un ensemble de caractère [limiteinf-limitesup] la casse n'est plus prise en compte .
comment faire pour que la casse soit prise en compte ?
awk version 3.1.6 sous Mandriva 2009.1 (même comportement sous la 2009.0 et la 2008.1)
Merci .
Poste le Wednesday 13 May 2009 08:35:49