SED comment traiter des fichiers xml
sinus
-
buggrodgers Messages postés 1 Statut Membre -
buggrodgers Messages postés 1 Statut Membre -
Bonjour,
Je voudrais utiliser sed pour faire le traitement suivant dans 300 fichiers xml
Je voudrais remplacer des lignes comme
<traitens type="int">8000</traitens>
par
<traitens type='java.lang.Integer-array'>
<int type='int'>8000</int>
<int type='int'>null</int>
</traitens>
Comme je veux aussi traiter des fichiers avec plusieurs attributs a modifier de cette maniere, je veux donc specifier plusieurs modifications a apporter selon que je suis sur une ligne ou une autre et
j'utilise un fichier de script sed que j'invoque de la maniere suivante : sed -f test.txt bom.txt>bom2.txt
Le fichier de script sed contient:
/traitens/s#\([0-9]*\)>#<traitens type='java.lang.Integer-array'><int type='int'>\1<\/int><int type='int'>null<\/int> <\/traitens>#
/cycles/s#\([0-9]*\)>#<cycles type='java.lang.Integer-array'><int type='int'>\1<\/int><int type='int'>null<\/int> <\/cycles>#
Mais je n'y arrive pas...
Est ce que quelqu'un peux me filer un coup de main? Merci!
Francois.
Je voudrais utiliser sed pour faire le traitement suivant dans 300 fichiers xml
Je voudrais remplacer des lignes comme
<traitens type="int">8000</traitens>
par
<traitens type='java.lang.Integer-array'>
<int type='int'>8000</int>
<int type='int'>null</int>
</traitens>
Comme je veux aussi traiter des fichiers avec plusieurs attributs a modifier de cette maniere, je veux donc specifier plusieurs modifications a apporter selon que je suis sur une ligne ou une autre et
j'utilise un fichier de script sed que j'invoque de la maniere suivante : sed -f test.txt bom.txt>bom2.txt
Le fichier de script sed contient:
/traitens/s#\([0-9]*\)>#<traitens type='java.lang.Integer-array'><int type='int'>\1<\/int><int type='int'>null<\/int> <\/traitens>#
/cycles/s#\([0-9]*\)>#<cycles type='java.lang.Integer-array'><int type='int'>\1<\/int><int type='int'>null<\/int> <\/cycles>#
Mais je n'y arrive pas...
Est ce que quelqu'un peux me filer un coup de main? Merci!
Francois.
A voir également:
- SED comment traiter des fichiers xml
- Renommer des fichiers en masse - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Xml viewer - Télécharger - Édition & Programmation
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
2 réponses
Salut,
[tmpfs]$ cat sinus
<traitens type="int">8000</traitens>
[tmpfs]$ sed "
/traitens/{
s#\(.*=\)\"\(.*\)\">\([^<]*\)\(.*\)#\1'java.lang.Integer-array'>\n\
<int type='int'>\3</int>\n\
<int type='int'>null</int>\n\
\4#
}" sinus
<traitens type='java.lang.Integer-array'>
<int type='int'>8000</int>
<int type='int'>null</int>
</traitens>
[tmpfs]$;-))
Bonjour,
Et bien tout d'abord merci ca fonctionne tres bien et puis ca me permet de traiter plusieurs types d'attributs en même temps dans les fichier à parser.
Ca me donne une très bonne base de travail pour continuer a apprendre SED: j'avais deja lu la FAQ/Manuel SED que vous avez écrit, maintenant il me reste a comprendre le comment de la récupération des buffers dans l'expression que vous venez d'écrire. Mais comme j'ai un modèle maintenant, je devrais y arriver sans trop de problèmes.
Vous m'avez bien sorti le cul des ronces :D, merci encore!
François.
Et bien tout d'abord merci ca fonctionne tres bien et puis ca me permet de traiter plusieurs types d'attributs en même temps dans les fichier à parser.
Ca me donne une très bonne base de travail pour continuer a apprendre SED: j'avais deja lu la FAQ/Manuel SED que vous avez écrit, maintenant il me reste a comprendre le comment de la récupération des buffers dans l'expression que vous venez d'écrire. Mais comme j'ai un modèle maintenant, je devrais y arriver sans trop de problèmes.
Vous m'avez bien sorti le cul des ronces :D, merci encore!
François.