[Shell] plusieurs commandes sed simultanées dans un même script
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:
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 ?