Esta poderia ser uma abordagem:
diff <(nl file1) <(nl file2)
Com nl
number, as linhas que diff
reconhecem as linhas linha por linha.
Eu tenho dois arquivos que contêm essencialmente um despejo de memória em um formato hexadecimal. No momento eu uso diff para ver se os arquivos são diferentes e onde estão as diferenças. No entanto, isso pode ser enganoso ao tentar determinar a localização exata (ou seja, endereço de memória) da diferença. Considere o seguinte exemplo mostrando os dois arquivos lado a lado.
file1: file2:
0001 | 0001
ABCD | FFFF
1234 | ABCD
FFFF | 1234
Agora, diff -u
mostrará uma inserção e uma exclusão, embora três linhas (locais de memória) tenham sido alteradas entre os dois arquivos:
0001
+FFFF
ABCD
1234
-FFFF
Existe uma maneira fácil de comparar os dois arquivos de modo que cada linha seja comparada apenas com a mesma linha (em termos de numeração de linhas) no outro arquivo? Portanto, neste exemplo, ele deve informar que as últimas 3 linhas foram alteradas, juntamente com as linhas alteradas de file1
e file2
. A saída não precisa ser diff-style, mas seria legal se pudesse ser colorida (no momento em que eu colo a diff -u
output usando sed
para que possa ser facilmente adaptada).