Re: Sed - Caractères spéciaux
Remys Morrissette a écrit, vendredi 13 mars 2009, à 02:12 :
> Bonjour,
bonjour,
> je veux modifier une chaîne de texte dans plusieurs fichier.
> le 'défi' ; des caractères spéciaux de html tel que ./ > = . < "
>
> j'utilise la commande suivante qui fonctionne très bien sur un mot unique
>
> for file in *; do sed -i 's/old/new/g' $file; done
Tu peux supprimer la boucle :
sed -i -e 's/old/new/g' *
(ou -i.old).
> le texte à remplacer :
>
> <a href="index_pp.html"><img src="back.png" alt="Back" /></a>
>
> par
>
> <a href="./index_pp.html"><img src="back.png" alt="Back" /></a>
>
> à la limite 'index_pp.html' par './index_pp.html' mais c'est agréable
> dans avoir plus dans le 'défi. ;-)
>
> En gros quel est le 'joker' `utiliser pour encadrer ma chaîne de texte.
Le délimiteur de la substitution est libre, donc
sed -e 's,","./",'
ferait l'affaire en insérant « ./ » après la première double-quote (si
ton exemple est une ligne complète) ; sinon, essaie d'être plus précis :
sed -e 's,href="index_pp,href="./index_pp,g'
et/ou utilise une adresse de ligne pour limiter les confusions :
sed -i.old -e \
'/href="index_pp\.html">/ s,href="index_pp,href="./index_pp,g'
> Merci
de rien,
--
Jacques L'helgoualc'h
Reply to: