Bonjour,

Je cherche à effectuer une modification dans plusieurs fichiers .xml
En effet, dans le cadre d'un script en php, je dois modifier tous les noms de balises où il existe un trait d'union, comme dans "<edp-article>", et seulement les traits d'union contenus dans les balises, pas ceux du texte.

J'ai écris le script suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
#!/bin/bash
 
i=1;
 
for fichier in *.xml
do
  echo "Traitement de $fichier ...";
  sed -e 's/-id/_id/g' "$fichier" > $i.xml ;
  sed -e 's/-article/_article/g' "$fichier" > $i.xml;
  sed -e 's/-[a-z]/_title/g' "$fichier" > $i.xml;
  sed -e 's/-paper/_paper/g' "$fichier" > $i.xml;
  sed -e 's/-elec/_elec/g' "$fichier" > $i.xml;
  sed -e 's/-number/_number/g' "$fichier" > $i.xml;
  sed -e 's/-page/_page/g' "$fichier" > $i.xml;
  sed -e 's/-name/_name/g' "$fichier" > $i.xml;
let "i+=1";
done
Je n'arrive pas à faire en sorte que toutes les substitutions s'effectuent. Seule la dernière commande sed est prise en compte. J'ai essayé en intercalant un pipe et un '&' entre chaque commandes mais rien n'y fait.

Quelqu'un aurait-il une explication ?