テキスト差分比較ツールの概要・基礎知識
diff(差分比較)は、2つのテキストの違いを行単位・文字単位で抽出する仕組みで、もともとはUnixの「diff」コマンドが起源です。GitやSVNといったバージョン管理システム、Visual Studio Codeなどのエディタにも標準搭載されており、ソフトウェア開発に欠かせない機能となっています。本ツールはブラウザ上で動くdiff実装で、追加された部分を緑、削除された部分を赤でハイライトし、行単位の差分に加えて行内の文字単位の差分まで色分け表示します。コードレビュー、文章校正、設定ファイル監査、契約書の改訂前後比較など、「何がどこで変わったか」を瞬時に把握したい場面で活躍します。
仕組みと特徴
- 行単位の比較:左右のテキストを行ごとに突き合わせ、追加・削除・変更された行を色で識別します。
- 文字単位の細部表示:変更された行の中で、どの文字が追加・削除されたかをさらに細かくハイライトします。
- 大文字小文字を無視オプション:英文や設定ファイルで大文字小文字差を意図的に無視したいときに使えます。
- サンプルプリセット:プログラムコード/文章修正/設定ファイルの3種類のサンプルで動作確認ができます。
- 左右入れ替え機能:変更前後を瞬時にスワップでき、見方を切り替えやすくなっています。
使い方の流れ
- 左側のテキストエリアに「変更前」のテキストを貼り付けます。コード・文章・設定ファイルなど、テキストであれば何でも比較できます。
- 右側のテキストエリアに「変更後」のテキストを貼り付けます。エディタからCtrl+A→Ctrl+Cで全選択コピーするのが手早いです。
- 必要に応じて「大文字小文字を無視」のチェックを入れ、比較条件を調整します。
- 「差分を比較する」ボタンをクリックすると、追加行が緑、削除行が赤でハイライトされ、行内の変更箇所も色分けで表示されます。
- 下部の「変更後テキストをコピー」「左右を入れ替え」「クリア」で結果を活用します。サンプルボタンを押せば動作デモも体験できます。
こんな場面で使う
- コードレビュー前のセルフチェック:Pull Request作成前に変更前後を貼り付けて、意図しない変更が混じっていないか自分の目で確認します。
- 文章校正・原稿修正:編集者からの戻し原稿と自分の元原稿を比較し、どの単語が修正されたかを瞬時に把握できます。
- 設定ファイル監査:.env や nginx.conf、php.ini といった設定ファイルの変更履歴がない場合に、バックアップとの差分を確認します。
- 契約書・規約の改訂前後比較:法務担当が新旧バージョンの契約書をテキストとして貼り付け、修正された条項を素早く特定します。
- データベースのDDLスクリプト比較:CREATE TABLE文やマイグレーションSQLの差分を確認し、誤った変更がないか目視チェックします。
使う前に知っておきたい注意点
- 5,000行を超える大きなテキストはブラウザの処理が重くなり、結果表示までに時間がかかることがあります。長文の場合はセクション単位で分けて比較するのが快適です。
- 機械翻訳した文章同士など、ほぼ全行が変わっているテキストは、行マッチングが曖昧になり全体が「削除+追加」として表示されることがあります。
- タブ/スペース、改行コード(CRLF/LF)の違いで意図しない差分として出ることがあります。コードの場合はエディタで改行コードを統一してから貼り付けてください。
- 本ツールは行・文字レベルの差分が目的で、構文的に同じだが書き方の違うコード(JSONのキー順序違いなど)は別物として扱います。意味的な等価性まで判定したい場合は専用ツールを併用してください。
- 暗号化されたテキストやBase64エンコード済みのデータを比較すると、1文字の違いが大量の差分として表示されます。エンコード前のオリジナルで比較するほうが意味のある結果になります。
用語の補足
- unified diff:Unix diffコマンドの代表的な出力形式。「+」が追加、「−」が削除を表し、Gitもこの形式を採用しています。
- side-by-side diff:左右に並べて比較する形式。GitHubのPull Request画面でもおなじみの表示方法です。
- 3-way merge:共通の親バージョンを基準に2つの変更をマージするGitの仕組み。本ツールは2way diffに特化しています。