삽입이나 삭제 없이 두 파일을 한 줄씩 엄격하게 비교합니다.

삽입이나 삭제 없이 두 파일을 한 줄씩 엄격하게 비교합니다.

기본적으로 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). 멜드가 설치되지 않은 경우 유용합니다.

관련 정보