onlinetools.dev

文本对比 Diff

逐行对比两段文本,直观查看增删差异

本地运行
loading…
关于此工具

左边粘贴原始文本,右边粘贴修改后的版本,得到统一的逐行对比:删除标红,新增标绿,中间保留上下文,两侧都有原始行号。要回答两份配置、两个 API 响应、或聊天里别人贴的两个代码片段之间「到底改了什么」,这是最快的办法。

对比使用基于行的最长公共子序列算法,与 git diff 同族,所以块的移动和小改动会产生可读的结果,而不是把所有内容标记为已更改。摘要行会汇总新增与删除的行数。

因为两段文本都留在页面里,对比机密材料——合同、配置里的凭据、未发布的文案——不会有把它们粘进某个网络服务的风险。

常见问题

对比是按词还是按行?
按行。每一行作为一个整体比较,这符合开发者阅读代码和配置 diff 的习惯。因此一行的修改会显示为一条删除加一条新增;字符级的行内高亮在计划中。
为什么我的 diff 显示所有内容都变了?
通常是看不见的差异:一边用制表符另一边用空格,Windows 的 CRLF 行尾对 Unix 的 LF,或者行尾空白。比较前先规整空白(JSON 载荷可以用带键排序的 JSON 格式化器)就能让真正的变化显现。
可以有意义地对比两个 JSON 响应吗?
可以——先把两份都过一遍开启键排序的 JSON 格式化器,让等价文档序列化得完全一致。之后 diff 显示的就是真正的值变化,而不是键顺序的噪音。
文本大小有上限吗?
算法要将一边的每一行与另一边的每一行比较,所以极大的文件(双方都有数万行)可能需要一点时间。典型的代码文件和 API 载荷都是瞬间完成。
相关工具