Bonjour,

j'ai un site d'annonces qui reçoit des informations au format xml (mon fichier xml contient 2 balises). J'ai ces fichierx xml disséminés dans différents sous-répertoires, et je suis en train d'écrire un script qui irait lire l'ensemble de ces répertoires, en extraire les fichiers xml et lire le contenu de chacun...

Pour cela, voici ce que j'ai tapé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
find /repertoire/ -maxdepth 2 -name *xml | sed -e "s/^<balise1>\(.\)</balise1></balise2>\(.\)</balise2>/\1/"
Bon, ça marche pas...
Le find consiste à chercher dans le répertoire appelé "repertoire" et ses fils (profondeur de 2).
Puis le -name pour chercher dans les fichiers xml.
Puis le sed, là ça se complique, je lui demande de m'extraire les données de chaque balise et de les afficher... mais je sais pas faire le "afficher"...

Sinon, j'ai trouvé ça aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
find /repertoire -exec grep -q "chaine à rechercher" '{}' \; -print
qui est bien mais je sais pas l'ajuster à ma demande... sniff..

Et pour terminer ce bout de code qui fonctionne aussi.. mais n'est pas assez "puissant" parce qu'il ne traite qu'1 seul fichier...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
perl -ne '$"="\n";@t=/<balise1>(.*?)<\/balise1><balise2>(.*?)<\/balise2>/g; print "@t\n"' /repertoire/fichier.xml
Merci de votre aide.