テキスト差分
2 つのテキストを行単位または単語単位で比較します。
このツールについて
元のテキストと変更後のテキストを貼り付けると、追加・削除された部分がわかります。行全体または単語単位で比較でき、重要でない空白の変更は無視できます。
使い方
- 左に元のテキスト、右に変更後のテキストを貼り付けます。
- コードや設定ファイルには「行」、文章には「単語」で比較します。
- インデントだけの変更を隠すには「空白を無視」を、差分に集中するには「変更行のみ」をオンにします。
よくある質問
- 色や記号は何を意味しますか?
- 緑色の + の行は変更後のテキストにだけ、赤色の − の行は元のテキストにだけ存在します。2 つの番号の列は、それぞれ元のテキストと変更後のテキストの行番号です。
- JSON ファイルを比較できますか?
- はい。最もわかりやすく比較するには、先に両方を JSON フォーマッターで「キーを並べ替え」を使ってフォーマットしてください。キーの順序や空白の違いが変更として表示されなくなります。
- 比較のためにテキストがアップロードされますか?
- いいえ。差分はブラウザー内で計算されるため、契約書、設定ファイル、コードも安全に比較できます。
- 2 つの Word 文書や PDF を比較できますか?
- ファイルとしては比較できません。どちらもバイナリ形式だからです。各バージョンからテキストをコピーして 2 つのボックスに貼り付け、「行」より文章に向いている「単語数」で比較してください。太字、フォント、レイアウトなどの書式の変更はプレーンテキストでは見えないため、表示されるのは文言の変更だけです。
- 順序に関係なく 2 つのリストを比較するには?
- まず行の並べ替え・重複削除・整理で、例えば「A から Z」で重複を削除するなど、同じ設定で両方のリストを並べ替えてから、ここに「行」モードで貼り付けます。− の付いた行は 1 つ目のリストにだけ、+ の付いた行は 2 つ目のリストにだけ存在するため、2 つの集合の差がわかります。
- 単語の中でどの文字が変わったかを確認できますか?
- いいえ。最小単位は単語なので、colour を color に変えると、単語全体が削除され、新しい単語が追加されたものとしてマークされます。そのほうがテキストの結果は読みやすくなります。長い ID やハッシュは値を 1 行に 1 つずつ置けば、「行」モードで変更された値が目立ちます。
差分チェッカーの仕組みとは?
差分チェッカーは、元のテキストを変更後のテキストに変える最小限の追加と削除の組み合わせを見つけます。両方のバージョンに共通する最長の部分列を探し、それ以外をすべて、元のテキストから削除されたもの、または変更後のテキストで追加されたものとしてマークします。そのため、修正された行は、git diff や GitHub での変更表示と同じく、削除された 1 行と、それに続く追加された 1 行として表示されます。
結果は比較の単位によって変わります。「行」モードは各行を 1 つのトークンとして扱うため、行が意味のある単位であるコード、設定ファイル、CSV、ログに向いています。「単語数」モードは単語ごとに比較して変更を行内にマークするため、文章、契約書、長い行に向いています。行単位では、1 語の編集で段落全体が変更扱いになってしまうためです。ステータス行には、追加・削除された行数、または「単語数」モードでは変更数が表示されます。
2 つのファイルを空白を無視して比較する方法
2 つのファイルを比較するには、各ボックスの上にある「ファイルを開く」を使うか、ファイルをボックスにドロップします。どちらもブラウザー内で読み込まれ、何もアップロードされません。「行」モードで使える「空白を無視」は、先頭や末尾のスペースとタブだけが違う行を同じとみなすため、インデントし直したブロックは変更として表示されなくなりますが、行の途中に追加されたスペースは変更として数えられます。「変更行のみ」は一致する部分をすべて非表示にします。
両方のテキストが同じに見えるのに差分ですべての行が変更扱いになる場合、原因はたいてい改行コードです。一方のファイルが Windows の CRLF、もう一方が Unix の LF を使っていて、目に見えないキャリッジリターンのせいで各行が異なるものになっています。「空白を無視」をオンにすると、その末尾の文字が空白として扱われ、ノイズが消えます。行頭のタブとスペースの違いも同じように扱われます。ファイル末尾の改行の有無は報告されません。
オンライン差分チェッカーと git diff の使い分け
リポジトリ内のファイルには git diff が適しています。履歴を把握し、ディレクトリ全体を対象にでき、適用できるパッチを生成します。オンライン差分チェッカーは、git では扱えないケースをカバーします。2 つの API レスポンスの比較、サーバー上の設定ファイルとリポジトリ内のものとの比較、メールから貼り付けた契約書の 2 つのバージョン、ファイルとして保存されたことのないテキストなどです。両側を貼り付ければ、すぐに結果を読めます。
構造化データは、比較する前に両方のバージョンを正規化しましょう。JSON は JSON フォーマッターで「キーを並べ替え」を使ってフォーマットし、SQL は SQL フォーマッターで同じ設定でフォーマットし、順序が重要でないリストは行の並べ替え・重複削除・整理で並べ替えます。そうすれば、差分には実際の変更だけが表示されます。このツールは差分を表示しますが、パッチはエクスポートしません。unified 形式の差分が必要なら、git diff --no-index a.txt b.txt がリポジトリの外でも使えます。
うまく動かない、または結果がおかしいですか? このツールの問題を報告