Petit souci avec 'sed'

Le
David BERCOT
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'

Merci d'avance.

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques L'helgoualc'h
Le #17286351
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,

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...

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",'


Merci d'avance.



de rien,
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
David BERCOT
Le #17286471
Le Sat, 20 Sep 2008 22:55:18 +0200,
Jacques L'helgoualc'h
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 p our 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 slash es,
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 pour quoi
changer ?

En tous cas, ça marche nickel !!!

Merci beaucoup.

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Kevin Hinault
Le #17287021
>
Ta première version (sans protéger le '.') fonctionne. Alors pourquoi
changer ?




Parce que . correspond à n'importe quel caractère ce qui inclut aussi
le point ;)

J'ajoute - parce Jacques ne l'a pas expliqué et qu'on n'est jamais
trop informé ^^ - qu'il est possible d'utiliser n'importe quel
caractère de séparation autre que / et jacques a utilisé le , à la
place du / ce qui évite de d'échapper les / par exemple dans des
chemins.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
fra-duf-no-spam
Le #17287141
Le 14142ième jour après Epoch,
David BERCOT écrivait:

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, les réponses t'ont permis d'avancer, tant mieux. Mais si tu
regardes ton expression, le 27ième caractère est le 'h' de
/usr/share.. car tu fais ton substitute avec comme séparateur le / et
tu ne quotes pas ceux du path que tu utilises... Pas très bon, tout ça
:)

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
David BERCOT
Le #17287621
Le Sun, 21 Sep 2008 01:12:32 +0200,
"Kevin Hinault"
>
> Ta première version (sans protéger le '.') fonctionne. Alors
> pourquoi changer ?

Parce que . correspond à n'importe quel caractère ce qui inclut aussi
le point ;)



OK. Je comprends mieux ;-)

J'ajoute - parce Jacques ne l'a pas expliqué et qu'on n'est jamais
trop informé ^^ - qu'il est possible d'utiliser n'importe quel
caractère de séparation autre que / et jacques a utilisé l e , à la
place du / ce qui évite de d'échapper les / par exemple dans des
chemins.



Merci pour ces compléments...

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme