Bonjour tous,

J'effectue des modifications de fichiers avec xmlstarlet. Script que l'on m'a fourni pour m'aider et j'essaye des apporter des lignes d'actions en plus.

Je cherche depuis ce matin à modifier une valeur dans un fichier api-manager.xml
api-manager.xml


La valeur que je souhaite faire trouver et modifier est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<DASServerURL>{tcp://localhost:7612}</DASServerURL>
Modifier par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<DASServerURL>{tcp://${iot_hostname}:7612}</DASServerURL>
En reprenant un bout du script que l'on m'a fait, je n'arrive pas à trouver les bonnes valeurs.
J'ai mis ceci et ça ne marche pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for file in $(find . -name 'api-manager.xml'); do
    xmlstarlet ed --omit-decl --pf \
        --update '//Analytics[DASServerURL="tcp://localhost:7612"]/APIManager/Analytics/DASServerURL' \
        --value "<DASServerURL>{tcp://${iot_hostname}:7612}</DASServerURL>" \
        ${file} > ${file}.old
 
done
Merci pour votre aide

Edit :

J'ai essayé aussi ceci mais en vain :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for file in $(find . -name 'api-manager.xml'); do
    xmlstarlet ed --omit-decl --pf \
        --update '//APIManager/Analytics/DASServerURL' \
        --value "<DASServerURL>{tcp://${iot_hostname}:7612}</DASServerURL>" \
        ${file} > ${file}.old
 
done