OVH Cloud OVH Cloud

PB sed Merci

1 réponse
Avatar
laurent860
Bonjour
dans un fichier xml je voudrais replacer la chaine
"<param-value>TOTO</param-value> " qui se trouve APRES
"<param-name>test.instance</param-name>" hors cela ne fonctionne pas


sed -e
's%<param-name>test.instance</param-name>.*<param-value>.*</param-value>%<param-name>test.instance</param-name>\n<param-value>71k</param-value>%'
test.xml



Fichier Test.xml
<init-param>
<param-name>test.instance</param-name>
<param-value>TOTO</param-value>
</init-param>
<init-param>
<param-name>VERSION</param-name>
<param-value>1</param-value>
</init-param>
Merci d'avance

1 réponse

Avatar
Jacques L'helgoualc'h
Le 28-09-2005, laurent860 a écrit :
Bonjour


bonsoir,

dans un fichier xml je voudrais replacer la chaine
"<param-value>TOTO</param-value> " qui se trouve APRES
"<param-name>test.instance</param-name>" hors cela ne fonctionne pas
[...]


Sed travaille ligne par ligne, sauf si on l'aide un peu :

sed -e '/<init-param>/,/</init-param>/{
/<param-name>test.instance</param-name>/{
n
s%<param-value>[^<]*</param-value>%<param-value>42K</param-value>%
}
}' Test.xml

(ne marche que si la ligne param-value suit immédiatement celle de param-name).
--
Jacques L'helgoualc'h