나란히 비교하고 싶은 2개의 ~1GB 파일이 있습니다. 내가 시도한 솔루션:
diff
- 빠르게 작동하지만 나란히 출력할 수는 없습니다.diff -y
또는sdiff
- 나란히 출력되지만 출력됩니다.모두파일 - 변경 사항뿐 아니라 찾을 수 없습니다.icdiff
- 너무 느립니다(Python으로 작성되었으므로 놀랄 일은 아닙니다).ydiff
- 실제로 시도해 보지는 않았지만 Python으로도 작성되었기 때문에 속도도 느릴 것으로 예상됩니다.- KDiff3 - 충돌이 발생했습니다.
- Xcode FileMerge - 너무 느립니다(몇 분 동안 응답하지 않음).
- 비교를 넘어서 - 최대 500MB 제한.
- Meld - 약간의 진전이 있었지만 너무 느려서 유용하지 않았습니다.
vimdiff
- 파일이 성공적으로 로드되고 실제로 나란히 차이점이 표시되지만 색 구성표로 인해 읽을 수 없으며 위로 눌러 스크롤하는 등 일반 프로그램에서 기대할 수 있는 일반 기능이 작동하지 않습니다.
답변1
지금까지 내가 가진 최고는 다음과 같습니다.
diff -y --suppress-common-lines --speed-large-files file1 file2
너비를 제어하는 데 사용됩니다 --width=200
.
안타깝게도그러면 컨텍스트 라인이 표시되지 않습니다..
내가 찾은또 다른 솔루션은grep
좋아 보이지만 정규식을 사용하고 너무 느립니다.
답변2
vimdiff
다음과 같이 Vagrant와 함께 설치되는 "MINGW64" [mintty 2.0.3 (x86_64-pc-msys © 2015 by Andy Koppe) 터미널에서 잘 작동합니다.VaryingVagrantVagrants 지시어.]
Ctrl+f
앞으로 탐색, 뒤로/위로 탐색 Ctrl+b
(다음과 같이 두 파일을 비교한 경우 두 번째 파일을 닫습니다.):q-Enter
:q-Enter
]2
화살표 키는 마우스 휠과 같은 기능을 합니다. 인내심을 갖고 로딩이 완료될 때까지 기다리세요. .minttyrc
"MINGW64" 창 옵션과 파일(자세한 내용은 여기를 참조하세요.):
]4 찾기 쉽도록 커서를 주황색으로 설정하고 깜박입니다.
2:
답변3
컨텍스트가 필요한 경우 이전(-B) 및 이후(-A) 컨텍스트를 사용하여 egrep을 통해 sdiff(또는 diff -y)의 (억제되지 않은) 출력을 파이프할 수 있습니다.
sdiff -H -t file1 file2 | egrep -B1 -A1 '^.{64}[^ ]'
-t 및 .{64}는 기본 130자 너비의 중간 지점에 도달하는 데 사용됩니다(출력의 탭을 확장하여 개수를 혼동하지 않도록 함). 더 짧은 너비를 지정할 수 있지만 그에 따라 오프셋을 조정해야 합니다.
sdiff -H -w 80 -t file1 file2 | egrep -B1 -A1 '^.{39}[^ ]'