テキスト差分チェック:2 つのテキストを比較
2 つのテキストを比較し、追加・削除・変更された行をすべて表示します。 処理はすべて端末内で完結し、アップロードは一切ありません。
- 入力
- Two texts or files
- 出力
- Side-by-side · inline · unified diff
元のテキスト
9 行
変更後
9 行
差分
+0 追加 · −0 削除 · ~4 変更
テキストを比較して、変わった箇所を正確に確認
左側に元のテキスト、右側に変更後のテキストを貼り付けるか、それぞれにファイルをドロップすると、このテキスト差分チェッカーが 2 つを揃えて並べ、追加・削除・変更されたすべての行に印を付けます。変更された行の中では異なる単語や文字がハイライトされるので、移動した読点や変わった数字が長い文の中に埋もれることはありません。比較はすべてブラウザ内で行われるため、他人のサーバーに貼り付けたくない契約書、設定ファイル、コードにも安心して使えます。
2 つのテキストを比較する方法
- 左のボックスに元のテキスト、右のボックスに変更後のテキストを貼り付けるか、どちらかのボックスにテキストファイルをドロップします。
- 下の結果を確認します。削除された行は赤、追加された行は緑で表示され、行内で変わった単語はハイライトされます。
- 左右に並べる表示と統合表示を切り替えたり、関係のない空白、大文字・小文字、空行を無視したりできます。
- 矢印を使って、変更箇所から次の変更箇所へ移動できます。
- 差分を標準的な
.patchファイルとしてコピーまたはダウンロードし、git applyやpatchで適用できます。
比較の仕組み
テキストは、git diff や GNU diff と同じ Myers の差分アルゴリズムで行ごとに比較されます。一方のテキストをもう一方に変える最短の挿入・削除のリストを求めるもので、これは 2 つに共通する最長の行の並びを求めることと同じです。編集された行は削除と追加として現れますが、ツールはそれらを組にし、各組の中で単語単位または文字単位の 2 回目の細かい比較を行って、変わった部分だけをハイライトします。
変更のない部分は、コードレビューと同様に、各変更の前後 3 行の文脈を残して折りたたまれます。折りたたまれた部分をクリックすると開き、折りたたみをオフにすると両方のテキスト全体が表示されます。非常に大きな入力やほぼ完全に異なる入力でも、比較はすばやく行われます。一定の処理量を超えると、最小の差分を探す代わりに残りの範囲を 1 つの変更ブロックとして示し、そのことを結果の上に表示します。
空白、大文字・小文字、空行を無視する
- 空白を無視
- スペース、タブ、インデントだけが異なる行を同じとみなします。git diff -w と同様で、コードの整形やテキストの折り返し直しの後に便利です。
- 大文字・小文字を無視
- 大文字と小文字を同じとみなすので、Title Case から sentence case に変えた見出しが変更として示されることはありません。
- 空行を無視
- 空行を追加・削除しただけの変更はグレー表示になり、件数やパッチから除外されます。
- 単語または文字
- 変更行のハイライトの細かさを選びます。文章には単語単位、コード、ID、数字には文字単位が向いています。
左右に並べる表示と統合表示
左右に並べる表示では、元のテキストと変更後のテキストをそれぞれの行番号付きで 2 列に並べ、変更された行が新しい版の隣に来るように揃えます。文章や長い行を読むのに最も見やすい表示です。統合表示は 1 列で、削除された行に -、追加された行に + を付け、パッチファイルやプルリクエストとまったく同じ形で示します。幅の狭い画面ではこちらが向いています。
結果の上の件数は、追加・削除・変更された行の数です。変更された行とはその場で編集された行のことで、削除された行は新しいテキストに対応する行がありません。
両側の行番号は貼り付けたテキストそのままの行を指すので、自分のエディターで各変更箇所を見つけられます。結果の上の矢印で変更箇所を順に移動でき、各変更が中央に表示されます。カウンターで現在の位置がわかります。
パッチファイルとその他の形式
ダウンロードされるのは unified diff 形式です。2 つのファイル名を示す --- と +++ のヘッダーに続き、3 行の文脈を含む @@ ハンクが並びます。git apply、patch -p1、あらゆるコードレビューツールが読み込める形式です。ファイル末尾の改行がない場合も標準的な方法で示すため、元のファイルにパッチを適用すると変更後のテキストが正確に再現されます。
JSON の場合、行単位の差分は適さないことがよくあります。キーの並べ替えやインデントの付け直しだけで、全体が変更されたように見えるからです。JSON 差分比較ツールは代わりに構造を比較し、キーの順序や書式を無視します。どちらかの版の文字数を数えるには文字数カウントを使ってください。
よくある質問
- 2 つのテキストの違いを比較するには?
- 左のボックスに元のテキスト、右のボックスに新しい版を貼り付けてください。すぐ下に差分が表示され、削除された行は赤、追加された行は緑で、変更された単語はハイライトされます。
- 2 つのファイルを比較できますか?
- はい。それぞれのボックスにテキストファイルをドロップするか、内容を貼り付けてください。コード、CSV、Markdown、ログ、設定ファイルなど、プレーンテキストのファイルならどれでも使えます。
- 空白の違いを無視するには?
- 「空白を無視」をオンにしてください。スペース、タブ、インデントだけが異なる行は、git diff -w と同様に同じものとして扱われます。
- unified diff とは何ですか?
- unified diff は、変更を @@ で始まるハンクとして並べる形式です。削除された行の先頭にはマイナス記号、追加された行にはプラス記号が付き、変更のない数行が文脈として含まれます。git や patch コマンドで使われる形式です。
- 2 つのテキストからパッチファイルを作るには?
- テキストを比較し、ダウンロードボタンを押すと unified 形式の .patch ファイルが保存されます。git apply または patch -p1 で元のファイルに適用してください。
- サイズの上限はありますか?
- 固定の上限はありません。数万行のファイルも一瞬で比較できます。非常に大きな入力や完全に異なる入力の場合は、速度を保つため単語のハイライトがオフになり、変更がより大きなブロックにまとめられることがあります。
- 比較するテキストはどこかにアップロードされますか?
- いいえ。比較はブラウザ内で行われ、サーバーには何も送信されないので、非公開の文書やコードも安心して比較できます。