Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sed et regexp

4 réponses
Avatar
Franck
Salut,

Dans le but d'adapter les fichiers WEB-INF/web.xml d'appli java
je cherche à faire des substitutions à l'aide de la commande sed et
d'une expression régulière

Dans un fichier j'ai la chaine suivante :

<context-param><param-name>chaine1</param-name><param-value>chaine2</param-value></context-param>

je souhaiterai mettre au point une commande qui me remplace "chaine2"
par "chaine3" uniquement si "chaine1" est présent au bon endroit

Un truc du genre :

sed -e "s/<param-name>chaine1<param-name>/{1}chaine3{2}/ web.xml >
newweb.xml

Mais bon, je connais pas les expression régulières :-(

Un peu d'aide ?

Merci d'avance
@+

--
mailto:flefebure2.remove@this.orangecaraibe.com
E2 ici : http://www.cnbt-cdpn.org

4 réponses

Avatar
Jacques L'helgoualc'h
Le 25-04-2005, Franck a écrit :
Salut,


bonsoir,

Dans le but d'adapter les fichiers WEB-INF/web.xml d'appli java
je cherche à faire des substitutions à l'aide de la commande sed et
d'une expression régulière

Dans un fichier j'ai la chaine suivante :

<context-param><param-name>chaine1</param-name><param-value>chaine2</param-value></context-param>

je souhaiterai mettre au point une commande qui me remplace "chaine2"
par "chaine3" uniquement si "chaine1" est présent au bon endroit


sed '/-name>chaine1</param-name/ s,value>chaine2<,value>chaine3<,'

avec si besoin un peu plus de sauce autour de chaine2, et en protégeant
les méta-caractères éventuels figurant dans les chaînes ... si besoin,
la virgule de la substitution peut être remplacée par un caractère
quelconque.

Merci d'avance


de rien,
--
Jacques L'helgoualc'h

Avatar
Jacques L'helgoualc'h
Le 25-04-2005, Franck a écrit :
Salut,


bonsoir,

Dans le but d'adapter les fichiers WEB-INF/web.xml d'appli java
je cherche à faire des substitutions à l'aide de la commande sed et
d'une expression régulière

Dans un fichier j'ai la chaine suivante :

<context-param><param-name>chaine1</param-name><param-value>chaine2</param-value></context-param>

je souhaiterai mettre au point une commande qui me remplace "chaine2"
par "chaine3" uniquement si "chaine1" est présent au bon endroit


sed '/-name>chaine1</param-name/ s,value>chaine2<,value>chaine3<,'

avec si besoin un peu plus de sauce autour de chaine2, et en protégeant
les méta-caractères éventuels figurant dans les chaînes ... la virgule
de la substitution peut être remplacée par un caractère quelconque.

Merci d'avance


de rien,
--
Jacques L'helgoualc'h

Avatar
Franck
Jacques L'helgoualc'h a utilisé son clavier pour écrire :
sed '/-name>chaine1</param-name/ s,value>chaine2<,value>chaine3<,'


En fait ca ne convient pas car je ne connais pas "chaine2" à priori
je ne connais que "chaine1" et "chaine3"

(Je m'étais mal exprimé.)

Merci.

--
mailto:
En Gwada y'a du vent !

Avatar
Pascal Bourguignon
Franck writes:

Jacques L'helgoualc'h a utilisé son clavier pour écrire :
sed '/-name>chaine1</param-name/ s,value>chaine2<,value>chaine3<,'


En fait ca ne convient pas car je ne connais pas "chaine2" à priori
je ne connais que "chaine1" et "chaine3"

(Je m'étais mal exprimé.)


man 7 regex
man 1 sed

sed '/-name>chaine1</param-name/ s,value>[^<]*<,value>chaine3<,'


--
__Pascal Bourguignon__ http://www.informatimago.com/
You're always typing.
Well, let's see you ignore my
sitting on your hands.