てがるツール
TEXT 1 — 変更前 0 行
TEXT 2 — 変更後 0 行

表示の見方

+ 追加行 TEXT 2 にだけ存在する行
− 削除行 TEXT 1 にだけ存在する行
 変更なし 両方に共通する行

使い方

  1. TEXT 1(変更前)に元のテキストを貼り付けます。コード、メール、議事録など行ごとに比較できる文字列ならなんでも。
  2. TEXT 2(変更後)に比較したいテキストを貼り付けます。「入れ替え」ボタンで TEXT 1 と TEXT 2 を一発で入れ替えられます。
  3. 「差分を比較」を押すと、追加・削除・変更なしの行が色付きで並びます。差分が多い場合は、変更箇所の前後 3 行以外を自動で折りたたんで表示します。

このツールについて

2つの文章を行単位で照らし合わせ、追加・削除された箇所をひと目で分かるように表示します。LCS(最長共通部分列)にもとづくシンプルな差分アルゴリズムで、行の対応関係をできるだけ素直に拾い上げます。

LCSとは、2つの文章に共通して現れる行を、順序を崩さずに最も多く拾い出したものです。この共通部分を「変更なし」として固定し、TEXT 1 にしか残らなかった行を削除、TEXT 2 にしか現れない行を追加として表示します。単に上から順に突き合わせるのではなく共通部分を先に確定させるため、途中に行が挿入されても、それ以降がすべてずれて表示されることがありません。

ソースコードや設定ファイルの変更前後の確認はもちろん、メール文面の校正、議事録の改訂チェック、コピーの A/B バリエーション比較など、文章を扱うあらゆる場面で活躍します。

目視での確認で最も見落としやすいのは、数字と否定表現の変更です。「5営業日」が「7営業日」に変わっても、「〜できる」が「〜できない」に変わっても、文章の見た目はほとんど変わりません。人は文章のかたちを追って読むため、こうした1文字の違いは読み飛ばしがちです。差分比較はこの種の変更に強く、契約書や仕様書の改訂確認で特に効果を発揮します。

比較は行単位で行われます。そのため、長い段落を1行のまま貼り付けると「その行がまるごと変わった」としか表示されません。日本語の文章を細かく比較したいときは、句点(。)ごとに改行を入れてから貼り付けると、変更された文だけが浮かび上がります。ひと手間かかりますが、効果の大きいコツです。

すべての処理はブラウザ内で完結し、入力した内容が外部に送信されることはありません。契約書や設定ファイル、顧客に関する記述など、外部に出したくない文章を扱う場面が多い操作なので、貼り付けた内容が手元から出ない点は安心してお使いいただけます。

作った人の使い方

以前、仕事でこんなことがありました。

メールの宛先一覧を表示する機能が、宛先を1件ずつ問い合わせる作りになっていて、件数が増えるほど遅くなっていました。いわゆる N+1 ですね。これを、まとめて一度に取得する形へ書き換えました。

速くするための修正ですから、出てくる結果は今までとまったく同じでなければいけません。とはいえ、一覧を1行ずつ目で突き合わせていくのは時間がかかります。並び順が入れ替わっていたり、1件だけ抜けていたりする違いは、急いで見るほど見落としやすいものです。

そこで、修正の前と後で同じ条件の出力を書き出し、このツールで差分がないことを確かめて、動作確認OKと判断しました。

よくある質問

Q. 行単位でしか比較できませんか?

A. このツールは行単位の差分を表示します。各行の内容が追加・削除・変更されたかどうかを確認できます。文字レベルでの差分表示は現在対応していません。

Q. HTMLやソースコードの比較にも使えますか?

A. はい。テキスト形式であれば、HTML・CSS・JavaScript・設定ファイルなど、どんな種類のコードでも比較できます。

Q. 比較できるテキストの上限はありますか?

A. 上限は設けていません。非常に長いテキストでもブラウザが処理できる範囲であれば比較できます。

Q. 差分結果をコピーできますか?

A. 差分表示エリアのテキストを選択してコピーできます。結果をそのまま別のドキュメントに貼り付けてご利用ください。

Q. 入力した内容は外部に送信されますか?

A. 送信されません。すべての処理はブラウザ内で完結します。社内文書や下書き中の文章を安心して比較できます。

Q. 内容はほぼ同じはずなのに、全行が差分になってしまいます

A. 改行コードの違いが原因であることが多いです。Windows は CRLF、macOS や Linux は LF を使うため、見た目が同じでも行末のバイトが異なり、全行が別物として扱われます。ほかに、行末の空白、インデントのタブとスペースの混在、ファイル先頭の BOM も同じ症状を起こします。比較する前に、どちらかの条件へそろえてから貼り付けてください。

Q. 差分が出ているのに、どこが違うのか目で見て分かりません

A. 見た目が同じで実体が異なる文字が紛れている可能性があります。半角スペースと全角スペース、Web ページからコピーしたときに混ざりやすいノーブレークスペース、ハイフンと長音符やダッシュなどが代表例です。これらは画面上ではまったく区別がつきません。差分として表示されている以上、たいていは本当に違う文字が入っています。

Q. 日本語の文章で、どこを直したのか細かく知りたいです

A. 比較は行単位のため、長い段落は「1行まるごと変わった」と表示されます。貼り付ける前に句点(。)ごとに改行を入れておくと、変更された文だけが差分として現れ、読み取りやすくなります。

Q. 行の順序が入れ替わっただけの場合はどう表示されますか

A. 順序も含めて比較するため、移動した行は「削除」と「追加」の組み合わせとして表示されます。順序を無視して内容だけを比べたい場合は、両方のテキストをあらかじめ並べ替えてから貼り付けてください。

Q. 大文字と小文字は区別されますか

A. 区別されます。Valuevalue は別の行として扱われます。設定ファイルのキー名など、大文字小文字の揺れが問題になる場面ではそのまま差分として確認できます。

活用シーン

文書の改訂チェック

契約書・マニュアル・仕様書の改訂前後を比較して変更点を一目で確認したいとき。

原稿の校正確認

修正依頼を受けたテキストが正しく直っているか確認したいとき。変更箇所が色分けされて一目瞭然です。

コードスニペットの比較

設定ファイルや短いコードの差異を素早く把握したいとき。ツール名やオプション名のタイポにも気づけます。

コード修正前後の出力結果の確認

リファクタリングやバグ修正の後、プログラムの実行結果やAPIレスポンスが変わっていないかを確認したいとき。修正前の出力をTEXT 1、修正後の出力をTEXT 2に貼り付けると、意図しない変化がないかを一目で確認できます。ログ出力やSQLクエリの結果など、「見た目では変わっていないはず」を素早く裏付けるのに便利です。

環境ごとの設定ファイル比較

開発・ステージング・本番など、環境ごとに用意した設定ファイルの差異を把握したいとき。本番だけに入っているオプションや、環境間で値がずれている項目を確認できます。

メールやチャットの下書き確認

テンプレートをもとに書いた文面が、どこを差し替えたか分からなくなったとき。元のテンプレートと今の下書きを並べれば、置き換え忘れた宛名や日付がそのまま「変更なし」として残るので、修正漏れに気づけます。

リストや名簿の照合

2つの一覧に差があるかを調べたいとき。参加者リストと出席者リスト、発注した品目と納品された品目など、行ごとに並んだデータであれば、どちらか一方にしかない行がそのまま追加・削除として表示されます。あらかじめ並べ替えておくと差が読み取りやすくなります。

翻訳・書き換え前後の対応確認

文章をリライトしたり、機械翻訳の結果を手直ししたりしたとき。原文と修正後を並べることで、意図せず抜け落ちた段落や、二重に残ってしまった文を見つけられます。