テキスト Diff 比較/ 行ごとの差分
2つのテキストの行ごとの差分をハイライト。コードとプレーンテキストをサポート、コンテキスト行数を調整可能、ローカル処理。
原文A
修正後B
コンテキスト
Diff
上の両パネルにテキストを貼り付けてください。
このツールは役に立ちましたか?
テキストDiffツールとは
テキストDiffツールはLCS(最長共通部分列)アルゴリズムを使用して2つのテキストを行ごとに比較し、追加、削除、変更を特定します。コードレビュー、設定ファイル比較、ドキュメントバージョン追跡で広く使用されています。
Diffツールの一般的な使用场景
コードレビュー:変更前後のコードを比較して修正箇所を特定。設定管理:異なる環境間の設定差異を比較。ドキュメント共同編集:編集履歴を確認。データ移行:データ変換の正確性を検証。
コード例
JavaScript (jsdiff)
import { diffLines } from 'diff';
const a = 'foo\nbar\nbaz';
const b = 'foo\nqux\nbaz';
diffLines(a, b).forEach(part => {
const sign = part.added ? '+' :
part.removed ? '-' : ' ';
process.stdout.write(sign + part.value);
});Python
import difflib
a = ['foo\n', 'bar\n', 'baz\n']
b = ['foo\n', 'qux\n', 'baz\n']
# Unified diff (like git diff)
diff = difflib.unified_diff(
a, b,
fromfile='original',
tofile='modified',
n=3, # context lines
)
print(''.join(diff))Go
// github.com/sergi/go-diff
import (
dmp "github.com/sergi/go-diff/
diffmatchpatch"
)
d := dmp.New()
diffs := d.DiffMain(textA, textB, false)
patch := d.PatchMake(textA, diffs)
fmt.Println(d.PatchToText(patch))Shell / CLI
# Unified diff with 3 context lines diff -U 3 original.txt modified.txt # Git-style diff (no git repo needed) git diff --no-index \ original.txt modified.txt # Side-by-side view diff --side-by-side \ original.txt modified.txt
よくある質問
Diff アルゴリズムの仕組みは?
LCS(最長共通部分列)アルゴリズムを使用してテキストを行ごとに比較し、最小の追加・削除セットを見つけます。git diff で使用されるアルゴリズムと類似しています。
コンテキスト行数の役割は?
各変更セクションの周囲に表示する未変更行の数を制御します。0 にすると変更行のみ、3 にすると変更の前後に3行ずつ、「すべて」にすると完全なテキストを表示します。
どのタイプのテキストがサポートされていますか?
コード(JavaScript、Python、Go など)、設定ファイル(JSON、YAML、TOML)、Markdown ドキュメント、ログファイルなど、任意のプレーンテキストがサポートされています。
コンテンツはサーバーに送信されますか?
いいえ。すべての処理は完全にブラウザ内で行われ、コンテンツがデバイスを離れることはありません。機密性の高いコードや設定の比較に安全です。
Diff 出力をコピーするには?
Diff パネルの右上にある「コピー」ボタンをクリックすると、統一形式の Diff テキストがクリップボードにコピーされます。
交換ボタンの用途は?
「交換 A↔B」をクリックすると元のテキストと変更後のテキストが入れ替わり、逆の方向から差分を確認できます。