[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: