Re: Modification de fichiers texte et gestion des caractères spéciaux avec sed, awk, perl
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
Reply to:
- References:
- Modification de fichiers texte et gestion des caractères spéciaux avec sed, awk, perl
- From: "Eric Veiras Galisson" <eric.veirasgalisson@gmail.com>
- Re: Modification de fichiers texte et gestion des caractères spéciaux avec sed, awk, perl
- From: Marc Chantreux <marc.chantreux@ulpmm.u-strasbg.fr>
- Re: Modification de fichiers texte et gestion des caractères spéciaux avec sed, awk, perl
- From: "Eric Veiras Galisson" <eric.veirasgalisson@gmail.com>
- Re: Modification de fichiers texte et gestion des caractères spéciaux avec sed, awk, perl
- From: Marc Chantreux <marc.chantreux@ulpmm.u-strasbg.fr>
- Re: Modification de fichiers texte et gestion des caractères spéciaux avec sed, awk, perl
- From: "Eric Veiras Galisson" <eric.veirasgalisson@gmail.com>