大容量ファイル比較

2 つの大きなローカルファイルを行単位またはバイト単位で比較します。空白・改行コード・文字コードのオプションと、ダウンロードできるレポート付き。

入力内容とファイルはブラウザ内に留まります

ファイル

元のファイル

任意のローカルファイル。この端末の外には出ません。

変更後のファイル

任意のローカルファイル。この端末の外には出ません。

両方のファイルは Web Worker 内で 1 MiB ずつ読み込まれます。各行はハッシュとしてのみ保持され、画面のテキストはファイルから読み直されます。アップロードや保存は一切行いません。

差分

元のファイルと変更後のファイルを選択すると、変更された行やバイト範囲が表示されます。

このページの内容

大容量ファイル比較は、テキストボックスに収まらないほど大きな 2 つのローカルファイルを比較します。数ギガバイトのログ、CSV エクスポート、SQL ダンプ、ビルド成果物などに対応します。テキストファイルは行単位、バイナリファイルはバイト単位で比較し、結果は仮想化された変更一覧の表とダウンロードできるレポートで確認できます。

詳細な機能

両方のファイルは Web Worker 内で 1 MiB ずつ読み込まれます。テキストを保持する代わりに各行を 64 ビットのハッシュに変換するため、ファイル 1 つあたり 1 行約 8 バイトで済みます。空白と改行コードのオプションはハッシュ計算時に適用されます。完全一致で比較、行末の空白を無視、空白の量の違いを無視、すべての空白を無視から選べ、CRLF と LF を同じ改行として扱うこともできます。UTF-8 と UTF-16 は Unicode 文字としてハッシュされるため、両方の文字コードで保存した同じテキストは一致します。Windows-1251 や Shift_JIS などのレガシー文字コードはバイトで比較します。

行の照合では、まず共通の先頭と末尾を飛ばし、次に両方のファイルにちょうど 1 回だけ現れる行をアンカーにして(patience diff)、その間の隙間を Myers アルゴリズムで揃えます。時間がかかりすぎる隙間は 1 つの置換ブロックとして表示され、ページにその旨が示されます。画面に表示される行だけをファイルから読み直すので、数百万行の変更をスクロールしても軽快です。

バイナリモードではバイトをブロック単位で比較し、異なる範囲ごとにオフセット、長さ、両側の先頭 16 バイトを一覧表示します。サイズの違いは最後の範囲になります。テキストのレポートは unified diff(.diff)、バイナリのレポートは CSV で、どちらも選んだファイルへストリーミングで書き出されます。

実用例

2 つのログファイル: 200 万行のログと、40 行のレベルが INFO から WARN に変わったコピーを比較すると、削除 40 行と追加 40 行が別々のハンクに、それぞれ 3 行のコンテキスト付きで表示されます。

Windows 版と Unix 版のコピー: CRLF のファイルと LF のコピーは、改行コードのオプションがオンなら差分なしになります。オフにするとすべての行が異なります。

インデントの再整形: 「空白の量の違いを無視」を選ぶと、単語間のスペースやタブだけが違う行は同じとみなされます。

ファームウェアイメージ: バイナリモードでは、バージョン文字列とチェックサムだけが異なる 2 つのビルドで、新旧のバイトを hex で示す短い範囲が 2 つ表示されます。

このツールの使い方

  1. ファイルを選ぶ

    元のファイルと変更後のファイルをドロップするか選択します。両方を選ぶとすぐに比較が始まります。

  2. オプションを設定する

    「自動判定」「テキスト行」「バイナリバイト」のいずれか、文字コード、空白のルール、改行コードを区別するかを選びます。新しいオプションで再実行するには「比較」を押します。

  3. 変更を確認する

    概要には削除・追加された行数とハンク数が表示されます。「前の変更」と「次の変更」でハンク間を移動し、「コンテキスト行数」を変えると前後に表示する未変更行を増減できます。

  4. レポートをダウンロードする

    テキストなら unified diff、バイナリファイルならバイト範囲の CSV をダウンロードします。

ヒントとベストプラクティス

  • 「自動判定」は、いずれかのファイルの先頭 8 KiB に NUL バイトがあるとバイナリに切り替えます。ただし UTF-16 の BOM で始まる場合は除きます。
  • 行はハッシュで比較されます。異なる 2 行が同じ 64 ビットハッシュになる可能性は極めて低く、表には常に実際のテキストが表示されます。
  • 並べ替えられたテキストブロックは、diff -u と同様に削除と追加として表示されます。
  • 「キャンセル」で Worker はすぐに停止し、ファイルは選択されたままです。
  • 短い 2 つの断片をさっと見比べたいときは、テキスト差分ビューアーが行内の変更された単語をハイライトします。

次の改善にご協力ください

次に何を改善すべきですか?

候補を1つ選んでください。これらは案であり、提供を約束する機能ではありません。

1つ選択してください

投票では選択肢だけを匿名の集計値として送信します。入力内容、ファイルデータ、URL、Cookie、識別子は含まず、このブラウザーにも保存しません。ページを再読み込みすると再度投票できます。