web-dev-qa-db-fra.com

Est-il possible de modifier un fichier XML dans Terminal?

J'ai reçu les instructions suivantes:

Sudo nano /etc/Tomcat7/Tomcat-users.xml

ajouter un utilisateur pouvant accéder aux manager-gui et admin-gui:

<Tomcat-users> <user username="admin" password="password" roles="manager-gui,admin-gui"/> </Tomcat-users>

en d'autres termes:

J'ai besoin de modifier le fichier XML, plutôt: dans le document XML, ajouter une nouvelle balise XML (<user>) dans une balise XML existante (<Tomcat-users>).

Je ne veux pas le faire manuellement tous les temps et je pense à la possibilité d'automatiser cette étape dans un terminal.

Quelle est la meilleure façon de le faire?

Le problème principal qui me pose problème est comment ajouter une nouvelle balise xml enfant dans la balise xml parent via un terminal sans manipulation manuelle?

J'utilise Ubuntu 14.10.

Solution:

 sed -i 's/<Tomcat-users>/<Tomcat-users>\n<user username="user" password="password" roles="manager-gui,admin-gui"\/>/' /etc/Tomcat7/Tomcat-users.xml
1
user471011

Faire:

sed 's!</Tomcat-users>!<user userame...../> &!' file.xml > new.xml 

ou

sed -i ... file.xml

changer directement fichier.xml.

Pour une transformation plus complexe, un outil doté de xml-parser serait le choix indiqué.

3
user216043