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

Re: Petit souci avec 'sed'



Le Sat, 20 Sep 2008 22:55:18 +0200,
Jacques L'helgoualc'h <lhh+no_spam@free.fr> a écrit :
> David BERCOT a écrit, samedi 20 septembre 2008, à 21:52 :
> > Bonjour,
> > 
> > Je voudrais juste faire un remplacement et, apparemment, j'ai un
> > souci...
> > J'ai eu beau essayer d'échapper d'autres caractères '.' ou ':', je
> > n'arrive à rien...
> > Si jamais quelqu'un avait une idée :
> > # cat /etc/php5/apache2/php2.ini | sed s/\;include_path\ =\
> > \".:\/usr/share/php\"/include_path\ =\ \".:\/usr/share/php\"/ sed:
> > -e expression n°1, caractère 27: option inconnue pour `s'
> 
> Bon, tu  devrais « simplequoter »  la commande sed  pour la  protéger
> de l'évaluation par  le shell ; si ton  but est bien de  supprimer le
> point virgule initial,

C'est bien le but ;-)

>  sed -e 's,;include_path = ".:/usr/share/php",include_path =
> ".:/usr/share/php",'
> 
> est plus lisible. Ton erreur vient  de l'oubli de protéger le slash
> dans usr/share, et « s », le premier  caractère suivant, n'est pas
> une option de la substitution...

C'est bizarre car j'ai aussi testé en protégeant les autres slashes,
mais j'avais la même erreur...

> Si le point est un vrai point, il vaut mieux le protéger :
> 
>  sed -e 's,;include_path = "\.:/usr/share/php",include_path =
> ".:/usr/share/php",'

Ta première version (sans protéger le '.') fonctionne. Alors pourquoi
changer ?

En tous cas, ça marche nickel !!!

Merci beaucoup.

David.


Reply to: