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é :
Bon, ça marche pas...
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/"
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 :
qui est bien mais je sais pas l'ajuster à ma demande... sniff..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 find /repertoire -exec grep -q "chaine à rechercher" '{}' \; -print
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...
Merci de votre aide.
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
Partager