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
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

Poser une question


http://stackoverflow.com/questions/...-diff-tool
-- Alain.
cksum $FICHIER1
cksum $FICHIER2
cmp (-s) est plus adapté et plus rapide.
à la suite ? ou mélangés ?
man dd , cf seek, skip, count, bs
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.
effectivement.
fichier A:
abcdefghijklmnopqrst
fichier B:
ab12cdef1212145ghijklm456789354nopqrst
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.
Je vais voir, merci.
--
Kevin
Kevin Denis
[... 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 -