diff assume que o segundo arquivo pode ter sido criado não apenas pela edição de linhas, mas também pela inserção e exclusão de linhas.
Se você quiser apenas saber quais linhas são diferentes sem considerar as linhas inseridas ou excluídas, use uma abordagem mais simples.
$perl d.pl a b | less
1: 255, 107 DIFFERENT!
2: 197, 148 DIFFERENT!
3: 113, 165 DIFFERENT!
4: 0, 221 DIFFERENT!
5: 0, 153 DIFFERENT!
6: 0, 85 DIFFERENT!
7: 48, 255 DIFFERENT!
8: 61, 187 DIFFERENT!
9: 63, 85 DIFFERENT!
10: 3, 0 DIFFERENT!
11: 49, 0 DIFFERENT!
12: 58, 15 DIFFERENT!
13: 47, 0 DIFFERENT!
14: 62, 0 DIFFERENT!
15: 61, 0 DIFFERENT!
16: 255, 255 same
17: 255, 255 same
18: 255, 255 same
19: 255, 255 same
20: 255, 255 same
21: 255, 255 same
onde d.pl é
#!/usr/bin/perl
use strict;
use warnings;
open my $f1, '<', $ARGV[0] or die "Can't read '$ARGV[0]' - $!\n";
open my $f2, '<', $ARGV[1] or die "Can't read '$ARGV[1]' - $!\n";
while (my $f1_line = <$f1>) {
my $f2_line = <$f2>;
chomp for $f1_line, $f2_line;
my $verdict = $f1_line eq $f2_line ? 'same' : "DIFFERENT!";
printf "%3d: %5d, %5d %s\n", $., $f1_line, $f2_line, $verdict;
}
close $f2;
close $f1;