대용량 파일 비교

두 개의 큰 로컬 파일을 줄 단위 또는 바이트 단위로 비교합니다. 공백, 줄 끝, 인코딩 옵션과 다운로드할 수 있는 보고서를 제공합니다.

입력 내용과 파일은 브라우저 밖으로 전송되지 않습니다

파일

원본 파일

어떤 로컬 파일이든 됩니다. 이 기기를 벗어나지 않습니다.

변경된 파일

어떤 로컬 파일이든 됩니다. 이 기기를 벗어나지 않습니다.

두 파일 모두 Web Worker에서 1 MiB 블록 단위로 읽습니다. 각 줄은 해시로만 보관되며, 화면의 텍스트는 파일에서 다시 읽어옵니다. 아무것도 업로드하거나 저장하지 않습니다.

차이점

원본 파일과 변경된 파일을 선택하면 바뀐 줄이나 바이트 범위가 표시됩니다.

이 페이지에서

대용량 파일 비교는 텍스트 상자에 넣기에는 너무 큰 두 로컬 파일을 비교합니다. 수 기가바이트 로그, CSV 내보내기, SQL 덤프, 빌드 결과물 등이 대상입니다. 텍스트 파일은 줄 단위, 바이너리 파일은 바이트 단위로 비교하며, 결과는 가상화된 변경 표와 다운로드할 수 있는 보고서로 제공됩니다.

상세 기능

두 파일 모두 Web Worker 안에서 1 MiB 블록 단위로 읽습니다. 텍스트를 보관하는 대신 각 줄을 64비트 해시로 바꾸므로 파일 하나에 줄당 약 8바이트만 듭니다. 공백과 줄 끝 옵션은 해시를 계산할 때 적용됩니다. 정확히 비교, 줄 끝 공백 무시, 공백 양의 변화 무시, 모든 공백 무시 중에서 고를 수 있고, CRLF와 LF를 같은 줄 끝으로 볼 수도 있습니다. UTF-8과 UTF-16은 유니코드 문자로 해시되므로 두 인코딩으로 저장한 같은 텍스트는 일치합니다. Windows-1251이나 Shift_JIS 같은 레거시 인코딩은 바이트로 비교합니다.

줄 매칭은 먼저 공통된 시작과 끝을 건너뛰고, 두 파일에 정확히 한 번씩 나오는 줄을 기준점으로 삼은 다음(patience diff), 그 사이의 간격을 Myers 알고리즘으로 정렬합니다. 시간이 너무 오래 걸리는 간격은 하나의 교체 블록으로 표시하고 페이지에 그 사실을 알립니다. 화면에 보이는 행만 파일에서 다시 읽으므로 수백만 줄의 변경을 스크롤해도 가볍습니다.

바이너리 모드는 바이트를 블록 단위로 비교하고 다른 범위마다 오프셋, 길이, 양쪽 처음 16바이트를 나열합니다. 크기 차이는 마지막 범위가 됩니다. 텍스트 보고서는 unified diff(.diff), 바이너리 보고서는 CSV이며, 둘 다 선택한 파일로 스트리밍 기록됩니다.

실용적인 예제

두 로그 파일: 200만 줄짜리 로그를 40줄의 레벨이 INFO에서 WARN으로 바뀐 사본과 비교하면, 삭제 40줄과 추가 40줄이 각각 컨텍스트 3줄이 붙은 별도 헌크로 표시됩니다.

Windows와 Unix 사본: CRLF 파일과 그 LF 사본은 줄 끝 옵션이 켜져 있으면 차이가 없고, 끄면 모든 줄이 다릅니다.

다시 맞춘 들여쓰기: 공백 양의 변화 무시를 선택하면 단어 사이의 공백이나 탭만 다른 줄은 같은 것으로 처리됩니다.

펌웨어 이미지: 바이너리 모드에서 버전 문자열과 체크섬만 다른 두 빌드는 이전 바이트와 새 바이트를 hex로 보여 주는 짧은 범위 두 개로 표시됩니다.

이 도구 사용 방법

  1. 파일 선택

    원본 파일과 변경된 파일을 끌어 놓거나 선택합니다. 두 파일을 모두 고르면 바로 비교가 시작됩니다.

  2. 옵션 설정

    자동 감지, 텍스트 줄, 바이너리 바이트 중 하나와 인코딩, 공백 규칙, 줄 끝을 구분할지 여부를 고릅니다. 새 옵션으로 다시 실행하려면 비교를 누르세요.

  3. 변경 내용 확인

    요약에는 삭제·추가된 줄 수와 헌크 수가 나옵니다. 이전 변경과 다음 변경으로 헌크 사이를 이동하고, 컨텍스트 줄 수를 바꿔 주변의 변경되지 않은 줄을 더 많이 또는 적게 표시하세요.

  4. 보고서 다운로드

    텍스트는 unified diff, 바이너리 파일은 바이트 범위 CSV로 다운로드합니다.

팁 및 모범 사례

  • 자동 감지는 어느 한 파일의 처음 8 KiB에 NUL 바이트가 있으면 바이너리로 전환합니다. 단, UTF-16 BOM으로 시작하는 파일은 예외입니다.
  • 줄은 해시로 비교합니다. 서로 다른 두 줄의 64비트 해시가 같을 가능성은 극히 낮으며, 표에는 항상 실제 텍스트가 표시됩니다.
  • 순서가 바뀐 텍스트 블록은 diff -u처럼 삭제와 추가로 나타납니다.
  • 취소를 누르면 Worker가 즉시 멈추고, 파일은 선택된 상태로 남습니다.
  • 짧은 두 조각을 빠르게 비교하려면 텍스트 차이 뷰어가 줄 안에서 바뀐 단어를 강조해 줍니다.

다음 개선을 선택해 주세요

다음에는 무엇을 개선할까요?

제안 하나를 선택하세요. 이는 아이디어이며 제공이 약속된 기능은 아닙니다.

옵션 하나 선택

투표는 선택한 항목만 익명 집계로 전송합니다. 입력 내용, 파일 데이터, URL, 쿠키 또는 식별자를 포함하지 않으며 이 브라우저에 저장되지 않습니다. 페이지를 새로 고치면 다시 투표할 수 있습니다.