2017-03-15 4 views
1

J'essaye d'éditer mon fichier xml avec un script dans bash en utilisant l'outil XMLStarlet. Je veux supprimer une étiquette complète de mon dossier, mon problème est dans la syntax de ma commande comme suit:Caractère d'espace entre guillemets dans le script bash en utilisant XMLStarlet

ed xmlstarlet -d «/propriétés/nom de la structure = \ » préférence \ « » 1

$

La balise est < nom de la structure = "préférence">

Mon erreur est: erreur XPath: expression non valide /propriétés/structure " "name =" préférence" L'e rror pointe sur la première citation (")

J'essaie d'insérer une citation, barre oblique inverse pour rendre le caractère espace acceptable, mais je ne trouve pas le moyen de le faire fonctionner. Quelqu'un peut-il m'aider s'il vous plaît sur ce sujet? Je n'ai pas encore trouvé de sujet à ce sujet.

Merci par avance

+0

Pouvez-vous fournir l'extrait 'xml' complètement? – Inian

Répondre

0

De:

<properties> 
    <bla name="preference" > 
    </bla> 
    <structure name="preference" > 
    </structure> 
    <structure name="xxx" > 
    </structure> 
</properties> 

le:

xmlstarlet ed -d '/properties/structure[@name="preference"]' 

produit

<?xml version="1.0"?> 
<properties> 
    <bla name="preference"> 
    </bla> 
    <structure name="xxx"> 
    </structure> 
</properties>