Analyse/Comparaison de fichiers

Filibert28 Messages postés 3 Statut Membre -  
jeanbi Messages postés 15399 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je cherche à réaliser un utilitaire permettant de comparer deux fichiers xml.
Pour cela, j'aimerais réaliser quelque chose du type.
Par exemple avec les 2 fichiers suivants :

Fichier1:
<JDepend name="project" version="1.0">
<Packages>

<Package name="java.io">
<error>No stats available: package referenced, but not
analyzed.</error>
</Package>

<Package name="java.lang">
<error>No stats available: package referenced, but not
analyzed.</error>
</Package>
...
</Packages>
</JDepend>

L'utilitaire commencera par récupérer l'élément racine :
<JDepend name="project" version="1.0">

Dans le second fichier, il cherchera à récupérer l'élément équivalent,
puis il comparera si les attributs de l'élément ont changé.

Fichier2:

<JDepend name="project2" version_control="1.2">

$ ./tp4.sh file1.xml file2.xml
'JDepend' (line 2):
attribut 'version' removed
attribut 'version_control' added with value '1.2'
attribut 'name' value modified to 'project2'

Je désire programmer ceci uniquement en bash sous Unix et je ne sais vraiment pas comment faire .
Une idée ?!
A voir également:

2 réponses

marc[i1] Messages postés 2603 Statut Contributeur 382
 
Salut,

utilise la commande diff … c'est simple, rapide et ça existe déjà :)
0
Filibert28 Messages postés 3 Statut Membre
 
Et sans la commande diff ? Car si les fichiers traités a titre d'exemple peuvent etre traités avec la commande diff, certains fichiers a rallonge qui sont au format xml, paraissent virtuellement identiques :
ex:

Fichier 1:
<root name="application">
<configuration name="prod" context="run">
<backup oneline="true">
</configuration>
</root>

Fichier 2:
<root
name="application">
<configuration name="prod"
context="run">
<backup
oneline="false">
</configuration>
</root>

en utilisant diff, on obtient :

1,3c1,6
< <root name="application">
< <configuration name="prod" context="run">
< <backup oneline="true">
---
> <root
> name="application">
> <configuration name="prod"
> context="run">
> <backup
> oneline="false">

Ce qui ne convient évidemment pas...
0
Filou > Filibert28 Messages postés 3 Statut Membre
 
Bonjour,

As tu essayé avec Winmerge ?
Perso, je n'ai pas testé avec du xml, mais je pense que ca en vaut le coup.
C'est en plus un opensource

a+

https://winmerge.org/
0
Filou > Filou
 
Sorry j'avais pas lu la fin "en bash sous unix"
ma reponse n'a aucun interet
0
jeanbi Messages postés 15399 Date d'inscription   Statut Contributeur Dernière intervention   2 184
 
bonjour,
http://www.ac-astuces.com/affiche.php?astuce=1141
le petit + en bas
diff avec emacs
a+

0