j'ai besoin d'extraire les demandes d'un fichier journal qui ressemblent à ceci:certain modèle de Extraction journal
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vehicleRegistration>
.... XML in between ....
.... XML in between ....
.... XML in between ....
.... XML in between ....
... at nth line there is line like this <vehicle id="2312313"></vehicle>
.... XML in between ....
.... XML in between ....
</vehicleRegistration>
La question importante est que vehicleRegistration peut être 5 lignes et parfois 17, sa variable. Il est où mon courant grep a échoué, je:
grep -A 13 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" vehicle.log
également un autre problème est que, parfois une demande peut être envoyée 2 fois ou plus parce que le service peut être indisponible pour une raison quelconque, donc il pourrait y avoir même plusieurs demandes dans le fichier.
Je devrais également exclure les demandes en double, le moyen de savoir que la demande est en double en comparant la ligne nième (pas la dernière ligne) <vehicle id="2312313"></vehicle>
, si l'ID du véhicule répété que son un duplicata.
Comment pouvez-vous résoudre ce problème? Suggestions, code, pseudo-code, tout est bienvenu.
EDIT:
fichier journal est pas un fichier xml, juste un fichier contenant un petit pourcentage de demandes xml et je ne peux pas analyser comme XML
EDIT II:
J'ai extrait uniquement la partie enregistrement du véhicule, en utilisant @eugene y une ligne commande perl -nle 'm{<vehicleRegistration>} .. m{</vehicleRegistration>} and print' logfile
, comment puis-je me débarrasser des doublons, les nœuds qui ont le même id de véhicule, je veux conserver une seule copie de ceux-ci.
merci pour votre réponse, que fait-il ci-dessus? imprime l'identifiant du véhicule? Je dois utiliser cet identifiant de véhicule pour me débarrasser de l'ensemble de entre vehicleRegistration> –
ant
Oui, cela prend le morceau de code XML que vous avez excisé et imprime l'identifiant du véhicule. –
Je voudrais supprimer des noeuds vehicleRegistration, qui contiennent le même id de véhicule que n'importe quels autres noeuds de vehicleRegistration, que diriez-vous que j'irais faire cela? pseudo-code ou code serait génial, ou un tutoriel ou tout ce qui pourrait m'aider à y parvenir. tnx – ant