GNT sans publicité, site mobile, fonctionnalitées exclusives...

différence entre deux fichiers binaires

Le
Kevin Denis
Bonjour,

pour différencier deux fichiers textes, nous avons diff.
Je dois aujourd'hui différencier deux fichiers binaires.

Le premier est plus gros que le second. Tous les octets du second
sont dans le premier.

Comment visualiser la différence entre les deux fichiers?
Comment concaténer les octets superflus du premier dans fichier?

J'utilise hexdump et diff qui me permet de visualiser facilement
l'emplacement de la première différence. Néanmoins, comme par la suite
les octets ne sont plus alignés, diff m'indique que tout le reste est différent.

Merci
--
Kevin
Lire les 8 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alain Ketterlin
Le #23268311
Kevin Denis
pour différencier deux fichiers textes, nous avons diff.
Je dois aujourd'hui différencier deux fichiers binaires.



http://stackoverflow.com/questions/...-diff-tool

-- Alain.
Pierre
Le #23274691
On 8 avr, 11:47, Kevin Denis
Bonjour,

pour différencier deux fichiers textes, nous avons diff.
Je dois aujourd'hui différencier deux fichiers binaires.

Le premier est plus gros que le second. Tous les octets du second
sont dans le premier.

Comment visualiser la différence entre les deux fichiers?



cksum $FICHIER1
cksum $FICHIER2
Cyrille Lefevre
Le #23275401
Le 08/04/2011 11:47, Kevin Denis a écrit :
Bonjour,

pour différencier deux fichiers textes, nous avons diff.
Je dois aujourd'hui différencier deux fichiers binaires.



cmp (-s) est plus adapté et plus rapide.

Le premier est plus gros que le second. Tous les octets du second
sont dans le premier.



à la suite ? ou mélangés ?

Comment visualiser la différence entre les deux fichiers?
Comment concaténer les octets superflus du premier dans fichier?



man dd , cf seek, skip, count, bs

J'utilise hexdump et diff qui me permet de visualiser facilement
l'emplacement de la première différence. Néanmoins, comme par la suite
les octets ne sont plus alignés, diff m'indique que tout le reste est différent.



sinon, tu peux toujours aller voir du côté de xdelta (A binary delta
generator)

http://xdelta.sourceforge.net

an application program designed to compute changes between
files. These changes (deltas) are similar to the output of the 'diff'
program in that they may be used to store and transmit only the
changes between files. However, unlike diff, the output of Xdelta is
not expressed in a human-readable format--Xdelta can also also apply
these deltas to a copy of the original file. Xdelta uses a fast,
linear algorithm and performs well on both binary and text files.

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Kevin Denis
Le #23275601
Le 11-04-2011, Cyrille Lefevre a écrit :
pour différencier deux fichiers textes, nous avons diff.
Je dois aujourd'hui différencier deux fichiers binaires.



cmp (-s) est plus adapté et plus rapide.



effectivement.

Le premier est plus gros que le second. Tous les octets du second
sont dans le premier.



à la suite ? ou mélangés ?



fichier A:
abcdefghijklmnopqrst
fichier B:
ab12cdef1212145ghijklm456789354nopqrst

Comment visualiser la différence entre les deux fichiers?
Comment concaténer les octets superflus du premier dans fichier?



man dd , cf seek, skip, count, bs



C'est ce que j'ai fini par faire. Une boucle qui compare les 'N'
premiers octets, et qui les efface si identique. Si différent,
on compare les 'n' octets (on supprime si différent), puis chaque octet
(supprimé si différent). On arrive donc au premier changement entre les
deux fichiers.
On boucle en supprimant octet par octet du fichier 2, et en vérifiant
que les 'n' premiers octets sont différents. S'ils sont identiques, on repart
dans une boucle avec 'N' octets.

Avec N24 et n, je n'ai pas trop de pb de perfs, ni de faux positifs.
(en vérifiant octet par octet uniquement, j'ai des faux positifs:
abcdefghijk
abcdef1234g5678ghijk
qui ne convient pas..)

J'ai juste un énorme problème de perfs lors de la suppression d'1 octet:
dd if=fichierB of=fichier bs=1 skip=1
est très très très lent.
En modifiant par:
dd if=fichierB of=fichier ibs=1 obs24 skip=1
C'est meilleur, mais lent tout de même (10s pour supprimer le premier octet
d'un fichier de quelques Mo).

Il y a surement plus optimisé :) mais comme je n'avais à faire l'opération
qu'une seule foi ça m'a convenu.

http://xdelta.sourceforge.net

an application program designed to compute changes between
files. These changes (deltas) are similar to the output of the 'diff'
program in that they may be used to store and transmit only the
changes between files. However, unlike diff, the output of Xdelta is
not expressed in a human-readable format--Xdelta can also also apply
these deltas to a copy of the original file. Xdelta uses a fast,
linear algorithm and performs well on both binary and text files.



Je vais voir, merci.
--
Kevin
Paul Gaborit
Le #23275701
À (at) 11 Apr 2011 11:09:47 GMT,
Kevin Denis
C'est ce que j'ai fini par faire. Une boucle qui compare les 'N'
premiers octets, et qui les efface si identique. Si différent,
on compare les 'n' octets (on supprime si différent), puis chaque octet
(supprimé si différent). On arrive donc au premier changement entre les
deux fichiers.


[... et la suite...]

J'expère que vous êtes conscient qu'il n'y pas une solution unique au
problème que vous posez... Et que la recherche de la solution optimale
(par exemple par la taille de la différence) est un problème complexe.

--
Paul Gaborit -
Publicité
Suivre les réponses
Poster une réponse
Anonyme