diff 명령을 사용하여 올바른 비교 테스트를 표시하는 방법을 제안하려면 여러분의 도움이 필요합니다. 파일이 두 개 있어요
파일 A:
2 1
3 4166
4 1186
5 14318
6 2451
7 64
10 3
11 18
20 5
파일 B:
3 3990
4 1144
5 14368
6 2439
7 64
10 3
11 18
20 5
병렬 비교를 표시하기 위해 이 방법으로 diff 명령을 실행하면 출력이 예상한 것과 다릅니다.
diff -y -W 60 FileA FileB
출력은 다음과 같습니다
2 1 | 3 3992
3 4166 | 4 1144
4 1186 | 5 14372
5 14318 | 6 2439
6 2451 <
7 64 7 64
10 3 10 3
11 18 11 18
20 5 20 5
예상되는 출력은 다음과 같아야 합니다.
2 1 <
3 4166 | 3 3992
4 1186 | 4 1144
5 14318 | 5 14372
6 2451 | 6 2439
7 64 7 64
10 3 10 3
11 18 11 18
20 5 20 5
즉, FileB의 첫 번째 줄이 누락되었지만 diff에서는 이를 캡처하지 못합니다. 이 문제를 해결하는 데 도움을 주실 수 있나요?
답변1
이것을 비교하는 방법에는 여러 가지가 있습니다
foo
bar
이와 관련하여
baz
라인을 비교하여. 당신은 그렇게 말할 수 있습니다
foo
첫 번째 파일bar
과baz
다른 줄에만 있습니다.- 또는
foo
및 은 첫 번째 파일에서만baz
다른 줄입니다 .bar
- 또는 첫 번째 파일에서만, 두 번째 파일에서만 가능합니다
foo
.bar
baz
모든 설명은 사실입니다. 처음 두 개는 diff -y
서식 사용법에서 각각 두 줄을 차지하고 세 번째는 세 줄을 차지하므로 약간 더 좋습니다.
이 경우 diff -y
세 개 대신 두 개의 행을 생성하는 것이 좋습니다. 그러나 여전히 선택할 수 있는 두 가지 설명이 있습니다.
이 변경 사항은 문자 하나만 변경하지만 비슷한 줄에 대한 개념이 없기 때문에 첫 번째 설명( bar
대체된 부분)이 마음에 들 것입니다. 두 줄은 다르거나 다릅니다.baz
diff
귀하의 예에서는 5개의 선을 4개의 다른 선과 비교하기 위해 다음과 같이 가정할 수 있습니다.어느5개 라인 중 5개 라인은 첫 번째 파일에 고유하며 나머지 4개 라인은 이에 상응합니다. 첫 번째 줄이 삭제되었다고 하셨고, diff
다섯 번째 줄이 삭제되었다고 말씀하셨습니다. 두 가지 방법 모두 유효합니다.
선 위에서 작동하기 때문 diff
이고, 부분적으로만 달라지는 선의 개념이 없기 때문입니다.
나는 그것을 시도했고 wdiff
텍스트와 함께 작동합니다. 이 도구는 3
과 두 파일을 동일하게 4
식별 할 수 있습니다. 그러나 출력이 다른 다른 도구입니다.5
6