Re: Modification de fichiers texte et gestion des caractères spéciaux avec sed, awk, perl
On 7/21/06, Marc Chantreux <marc.chantreux@ulpmm.u-strasbg.fr> wrote:
le 21/07/2006,
Eric Veiras Galisson nous écrivait :
> c'est déjà ce que j'ai fait, à la fois pour sed, awk et perl en utilisant
> ! au lien de / comme délimiteur (et non pas caractère de séparation comme
> je l'ai écrit plus haut)
pourrais tu nous donner un cas concret avec une source, une commande et
un message d'erreur. Nous aurions moins de difficulté a cerner ton
problème.
En effet, j'aurais au moins pu donner le message d'erreur... désolé.
Voilà.
J'ai un fichier html comme celui-ci (je l'ai simplifié) :
<tr>
<td class="sstitre"><div align="left">
<a
href="http://mon.domaine.tld/informatique/accueil.html"
class=lienTitre>Accueil</a><BR>
<a
href="http://mon.domaine.tld/informatique/contact.html"
class=lienTitre>Coordonnées</a><BR>
<a
href="http://mon.domaine.tld/informatique/securite.html"
class=lienTitre>Sécurité</a><BR>
<a
href="http://mon.domaine.tld/informatique/services.html"
class=lienTitre>Services</a><BR>
</div>
</td>
</tr>
et je veux insérer derrière la ligne "Services" un autre lien vers un Wiki
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
(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...)
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
J'ai le message
sed: -e expression n°1, caractère 1: \ attendu après `a', `c' ou `i'
surement dû au '<' juste après.
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.
--
Eric Veiras Galisson
Reply to: