差分チェッカー — 2 つのテキストや JSON ファイルを並べて比較
テキスト、コード、JSON ファイルの 2 つのバージョンを比較し、どの行、単語、文字が変わったかを正確に確認できます。
不具合や改善できそうな点を見つけましたか?いただいたメッセージはすべて読み、すぐに対応します。
この無料の差分チェッカーは 2 つのテキストを比較し、変更点を 1 行ずつ、各行の中で変わった単語や文字をハイライトして表示します。契約書の 2 つの草案、設定ファイルの 2 つのバージョン、編集後の記事と元の記事、2 つの API レスポンスの比較に使えます。左右並び表示と unified 表示を切り替えられ、空白や大文字・小文字の違いが重要でなければ無視できます。
JSON モードでは両方を解析してテキストではなくデータを比較するので、キーの並べ替えは変更として報告されず、実際の違いはすべて、$.scripts.dev が「next dev」から「next dev -p 3300」に変更、のようにパスごとに一覧表示されます。どちらのテキストもブラウザの外には出ません。差分には Myers のアルゴリズム(git diff や GNU diff で使われているもの)を使い、時間制限付きで実行するので、5,000 行のファイルを 2 つ貼り付けてもページが固まりません。ほぼすべての箇所が異なる入力は、いつまでも処理を続けるのではなく、違いが大きすぎると報告します。
使い方
- 左に元のテキスト、右に変更後のテキストを貼り付けます。比較は入力に合わせて実行されます。
- 追加行と削除行の数を確認してから、ハイライトされた行に目を通します。赤は削除、緑は追加で、濃いハイライトは実際に変わった単語を示します。
- インデントを変えたコードには「空白を無視」を、大文字・小文字の違いが重要でなければ「大文字・小文字を無視」をオンにします。
- 2 つの JSON ドキュメントを構造で比較し、変更されたパスの一覧を得るには JSON モードに切り替えます。
- 結果をプレーンな diff としてコピーまたはダウンロードするか、「左右を入れ替え」を押して比較を逆にします。
よくある質問
2 つのテキストの違いを比較するには?
一方のバージョンを「元のテキスト」欄に、もう一方を「変更後」欄に貼り付けます。削除された行は赤、追加された行は緑、変更された行は両方の色で表示され、変わった単語がハイライトされます。変更のない部分は折りたたまれるので変更箇所の間を移動しやすく、すべてを表示するには「変更のない行を折りたたむ」をオフにします。
左右並び表示と unified 形式の違いは何ですか?
左右並び表示は 2 つのバージョンを並んだ列に配置するもので、文章や短い行が最も読みやすくなります。unified は 1 列で表示し、削除行に −、追加行に + を付けます。git やパッチファイルで使われている形式で、幅の狭い画面に向いています。どちらの表示でも同じ変更が表示されます。
キーの順序を無視して JSON ファイルを比較できますか?
はい。JSON モードに切り替えてください。両方が解析され、オブジェクトはキーの出現順序に関係なくキーごとに比較されます。一方、配列は順序に意味があることが多いため、位置ごとに比較されます。追加、削除、変更されたすべてのパスの表と、キーを並べ替えてインデントし直した両ドキュメントの行単位の差分が表示されます。
「空白を無視」は何をしますか?
2 つの行が一致するかどうかを判定する際に、連続するスペースやタブを 1 つのスペースとして扱い、行頭と行末のスペースを無視します。インデントの変更や末尾のスペースが表示されなくなるので、コードを整形し直したときに便利です。行自体は貼り付けたとおりに表示されます。
サイズの上限はありますか?
固定の上限はありません。数千行のファイルなら、ノートパソコンで 1 秒もかからずに比較でき、変更のない長い部分は折りたたまれるのでページも軽快なままです。2 つの大きな入力がほぼすべての行で異なる場合は、タブを固まらせる代わりに、数秒で比較を止めてその旨を表示します。
テキストはアップロードされますか?
いいえ。比較はブラウザ内の JavaScript で実行され、貼り付けた内容がサーバーに送信されたり保存されたりすることはありません。そのため、契約書、ソースコード、機密情報を含む設定ファイルにも使えますが、どの Web サイトに何を貼り付けるかについての通常の注意は変わらず必要です。
差分の計算方法
差分は、2 つのバージョンに順序どおり共通して現れる最長の行の並びを見つけ、それ以外をすべて削除または追加として報告します。このツールは jsdiff ライブラリを通じて、Eugene Myers が 1986 年に発表した O(ND) アルゴリズムを使っています。2 つのテキストが似ている(違いの数 D が小さい)ときは高速で、違いが大きくなるほど遅くなるため、時間制限を設けています。
変更された行とは、実際には削除された行の後に追加された行が続いたものです。削除のまとまりが追加のまとまりの隣にある場合、ツールはそれらを 1 行ずつ対応付け、各組の中で単語単位または文字単位の、より細かい 2 回目の差分を実行します。単語単位は文章やほとんどのコードに向いており、文字単位は 1 文字のタイプミスや変わった数字を正確に示します。
主な使い方
• 契約書や規約:相手方の変更概要に頼らず、どの条項が編集されたかを正確に確認。
• コンテンツの編集:承認前に、公開済みの記事と編集者の修正版を比較。
• 設定:正常に動く設定ファイルと壊れた設定ファイル、またはステージングと本番の環境ファイルを比較。
• API レスポンス:2 つの JSON レスポンスを JSON モードに貼り付けて、バージョン間で変わったフィールドを確認。
• リスト:メールアドレスや SKU の 2 つのエクスポートを比較。並び順がノイズにならないよう、先にテキスト整形ツールで両方を並べ替えておきましょう。