Comparez deux files ssortingctement ligne par ligne, sans insertions ni suppressions

J'ai deux files qui contiennent essentiellement des vidages de memory dans un format hexadécimal. Pour le moment j'utilise diff pour voir si les files sont différents et où sont les différences. Cependant, cela peut être trompeur lorsque vous essayez de déterminer l'location exact (c'est-à-dire l'adresse memory) de la différence. Prenons l'exemple suivant montrant les deux files côte à côte.

file1: file2: 0001 | 0001 ABCD | FFFF 1234 | ABCD FFFF | 1234 

Maintenant diff -u affichera une insertion et une suppression, bien que 3 lignes (locations memory) aient changé entre les deux files:

  0001 +FFFF ABCD 1234 -FFFF 

Existe-t-il un moyen facile de comparer les deux files de sorte que chaque ligne ne soit comparée à la même ligne (en termes de numérotation des lignes) que dans l'autre file? Donc, dans cet exemple, il devrait indiquer que les 3 dernières lignes ont changé, ainsi que les lignes modifiées de file1 et file2 . La sortie n'a pas besoin d'être diff-style, mais ce serait cool si elle pouvait être colorée (au moment où je colore la sortie diff -u utilisant sed , qui pourrait facilement être adapté).

Cela pourrait être une approche:

 diff <(nl file1) <(nl file2) 

Avec nl number, les lignes qui diff reconnaissent les lignes ligne par ligne.