두 개의 큰 텍스트 파일을 비교 (각 6GB).

두 개의 큰 파일이 있습니다 (각 6GB). \n구분 기호 로 줄 바꿈 ( )을 사용 하여 분류되지 않습니다 . 어떻게 차이점을 알 수 있습니까? 24 시간 미만이 소요됩니다.



답변

가장 확실한 대답은 diff 명령을 사용하는 것이며 –speed-large-files 매개 변수를 추가하는 것이 좋습니다.

diff --speed-large-files a.file b.file

분류되지 않은 파일을 언급하므로 먼저 파일을 정렬해야 할 수도 있습니다.

sort a.file > a.file.sorted
sort b.file > b.file.sorted
diff --speed-large-files a.file.sorted b.file.sorted

두 번째 정렬 출력을 직접 diff로 파이프하여 추가 출력 파일 작성을 저장할 수 있습니다

sort a.file > a.file.sorted
sort b.file | diff --speed-large-files a.file.sorted -

분명히 이것들은 사용 가능한 메모리가 많은 시스템에서 가장 잘 실행되며 충분한 여유 디스크 공간이 필요할 것입니다.

당신이 전에 이것을 시도했는지 여부는 당신의 질문에서 명확하지 않았습니다. 그렇다면 무엇이 잘못되었는지 아는 것이 도움이 될 것입니다 (너무 오래 걸리는 등). 나는 항상 파일 정렬과 diff 명령이 다르게 작동하는 것을 가능하게하는 파일의 도메인 특정 속성이 없다면 사용자 정의 명령뿐만 아니라 최소한 명령을 수행하는 경향이 있음을 발견했습니다.


답변

입력을 정렬하고 diff프로그램이 입력을 정렬한다고하면 속도가 엄청납니다. 나는 그런 diff옵션을 알지 못하지만 comm정렬 된 입력을 가정하고 목적에 충분하다면 훨씬 빠를 것입니다.


답변