Bonjour ,
je voudrais faire un sed sur un répertoire contenant des fichiers xml;
j'ai donc:Je voudrais pouvoir remplacer la chaine "bxxxx-3" ou "bxxxx" (ou x sont des nombres de 0 à 9, il peut y en avoir plus de 4) par "b-xxxx-3" ou "b-xxxx", si et seulement l'attribut xml:id (dont le format est décrit ci-dessus) est dans une balise <bibl>. Mais certains attributs peuvent être placé avant ! Et il faut gérer cela.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for fichier in ./flau/*.xml do sed -i 's/\(<bibl xml:id="b\)\([0-9].*-3"\)/\1-\2/g' $fichier sed -i 's/\(<bibl xml:id="b\)\([0-9].*"\)/\1-\2/g' $fichier done
Voici qq essais:
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #sed -i 's/\(<bibl \)\(*\) \(xml:id="b\)\([0-9].*-3"\)/\1-\2/g' $fichier sed -i 's/\(<bibl [a-Z].* xml:id="b\)\([0-9].*-3"\)/\1-\2/g' $fichierLe second je peux le traiter mais pas le premier. Comment faire svp?<bibl dbp:hand="GF-encre" xml:id="b6431-3">Athalie
<bibl xml:id="b6432-3">Fautes
Partager