Le Tuesday 26 July 2005 11:44, Christophe Gaubert a écrit :
> Jean-Claude Garaud a écrit :
> > Je viens de trouver çà :
> > echo `expr match "$a" '.*neige'`
> > 11
> > qui semble me retourner la position dernier caractère.
> > Comprends pas très bien la signification du .*
>
> Ça te donne la longueur de la sous-chaîne commençant au début de $a et
> correspondant à l'expression régulière '.*neige', sachant que .* matche
> n'importe quelle suite de caractères. Ah, et c'est la plus longue
> sous-chaine, comme le montre :
>
> a="il neige aujourd'hui, il neige depuis hier"
> b="il neige aujourd'hui"
> echo $(expr "$a" : '.*neige')
> echo $(expr "$b" : '.*neige')
>
> [ La notation : est strictement équivalente à "expr match" ]
>
> Pour de la doc, à part le 'advanced bash scripting guide'...
> En anglais :
> http://www.tldp.org/LDP/abs/html/
> En français :
> http://abs.traduc.org/index.html
> (la dernière version a encore besoin de relecteurs pour être officielle)

Merci pour toutes ces précisions.
Je me sers effectivement très souvent de http://www.tldp.org/LDP/abs/html/ et 
http://abs.traduc.org/index.html pour l'ecriture de mes scripts. Dans 
l'ensemble les explications et surtout les exemples sont excellents. Mais 
expr et regex ç'est vraiment tordu : le sujet gagnerait à être plus 
développé.

J'ai trouvé ça aussi pour utiliser une variable pour la sous-chaîne : bien 
utile dans un script :
c=neige
echo $(expr "$a" : \.\*$c)

Jean-Claude



____________________________________________________
Want to buy your Pack or Services from Mandriva? 
Go to http://store.mandriva.com
Join the Club : http://www.mandrivaclub.com
____________________________________________________

Répondre à