기본적으로 16진수 형식의 메모리 덤프를 포함하는 두 개의 파일이 있습니다. 현재 나는 diff를 사용하여 파일이 다른지, 차이점이 어디에 있는지 확인합니다. 그러나 이는 차이의 정확한 위치(예: 메모리 주소)를 확인하려고 할 때 오해의 소지가 있을 수 있습니다. 두 개의 파일을 나란히 표시하는 다음 예를 살펴보세요.
file1: file2:
0001 | 0001
ABCD | FFFF
1234 | ABCD
FFFF | 1234
이제 diff -u
두 파일 간에 3줄(메모리 위치)이 변경되었음에도 불구하고 삽입 1번과 삭제 1번이 표시됩니다.
0001
+FFFF
ABCD
1234
-FFFF
각 줄이 다른 파일의 동일한 줄(줄 번호 지정 측면에서)과만 비교되도록 두 파일을 비교하는 쉬운 방법이 있습니까? 따라서 이 예에서는 in 및 out이 변경된 file1
행 뿐만 아니라 마지막 3개 행이 변경되었음을 보고해야 합니다 file2
. 출력이 diff 스타일일 필요는 없지만 색조를 적용할 수 있다면 멋질 것입니다(현재는 쉽게 조정할 수 있도록 diff -u
출력에 색조를 적용하는 데 사용합니다 ).sed
답변1
이는 한 가지 접근 방식일 수 있습니다.
diff <(nl file1) <(nl file2)
nl
숫자를 사용하여 diff
행을 한 줄씩 식별합니다.
답변2
meld의 답변을 바탕으로 이것은 command line에서 저에게 효과적이었습니다 sort -n -k1,1 -s <(nl file1) <(nl file2)
. 멜드가 설치되지 않은 경우 유용합니다.