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: