[a-z] en regex shell match tout

Daniel Caillibaud ml at lairdutemps.org
Fri Apr 29 18:46:19 CEST 2011


Bonjour,

En rédigeant un petit mémo sur les traitements de variable en bash je suis tombé sur un truc
bizarre. J'avais noté (à partir de http://abs.traduc.org/abs-fr/ch09s02.html)

${chaine%%regex} : Supprime la plus grande correspondance de regex à partir de la fin de
$chaine.

Mais visiblement mon bash prend tous les caractères comme faisant partie de [a-z].

chaine=une.petite.phrase.courte.123;
echo ${chaine%%[0-9]*}
une.petite.phrase.courte.

Ça c'est le résultat que j'attendais, mais 
echo ${chaine%%[a-z]*}

me renvoie toujours une ligne vide, idem pour
echo ${chaine##[a-z]*}
ou
echo ${chaine##[aeioun]*}
(je m'attendais à '.petite.phrase.courte.123' comme echo $chaine|sed 's/^[a-z]*//')

Je suppose que j'ai pas compris un truc...


-- 
Daniel

Always forgive your enemies - nothing annoys them so much.
Oscar Wilde




More information about the Shell mailing list