Vendredi 21 juillet 2006, 15:40:52 CEST, Eric Veiras Galisson a écrit :
>[...]
> si je lance avec awk cette commande :
>
> $ awk '#<a href="http://mon.domaine.tld/informatique/services.html"
> class=lienTitre>Services</a># {print $1"\n<a
> href="http://wiki.domaine.tld/wiki" class=lienTitre>Wiki</a>"}'
> fichier.html
>
> je n'ai aucun message d'erreur mais aucune modification non plus de mon
> fichier
awk attend forcément un / pour une regexp, comme tu lui donnes #, il
prend ça pour une expression. Voir le manuel de awk, je m'en sers
rarement avec des expressions complexes.
> (j'ai suivi ton conseil et remplacé mon ! par #, parce qu'avec le !
> j'avais des messages d'erreur... ce n'était pas une bonne idée
> d'utiliser ce symbole...)
Normal, en bash (et autres sh), ! sert pour la gestion d'historiques.
(Et, s'il est « simple-quoté », c'est l'opérateur non.)
> Avec sed
> $ sed -ei '#<a href="http://mon.domaine.tld/informatique/services.html"
> class=lienTitre>Services</a># a<a href="http://wiki.domaine.tld/wiki"
> class=lienTitre>Wiki</a>' fichier.html
Sed peut prendre d'autres caractères que / comme marqueur de regexp, si
on suit ces règles :
- après une commande, aucun problème (p.ex. 's:a:b:' est pareil que
's/a/b/) ;
- avant une commande (c'est-à-dire comme adresse), il faut protéger le
premier : '/a/,/b/ s/x/y/' peut devenir '\:a:,\,b, s!x!y!'
> Par contre, si j'utilise perl
>
> $ perl -pi.bak -e 's#(<a
> href="http://mon.domaine.tld/informatique/services.html"
> class=lienTitre>Services</a>)#$1<BR>\n<a
> href="http://wiki.domaine.tld/wiki" class=lienTitre>Wiki</a>#g'
> test.html
>
> là, ça marche bien, donc mon problème est résolu, mais j'aurais
> néanmoins aimé pouvoir le faire avec sed et awk.
Je ne connais pas bien perl mais sans doute est-ce parce que tu places la
regexp après la commande 's' (comme cela fonctionnerait avec sed (sauf
que non à cause du saut ligne)).
--
Sylvain Sauvage
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org