文本对比工具 — 并排比较两段文本或 JSON 文件

比较文本、代码或 JSON 文件的两个版本,准确看出哪些行、词和字符发生了变化。

发现问题,或者觉得哪里可以更好?每条消息我们都会阅读,并尽快修复。

这款免费的文本对比工具会逐行比较两段文本,显示改动之处,并在每行中高亮具体改动的词或字符。可以用它比较合同的两版草稿、配置文件的两个版本、修改后的文章与原文,或者两个 API 响应。可在并排视图和统一视图之间切换,在空白或大小写差异无关紧要时将其忽略。

JSON 模式会解析两侧内容并比较数据而非文本,因此键的顺序调整不会被当作改动,每一处真正的差异都会按路径列出,例如 $.scripts.dev 从“next dev”变为“next dev -p 3300”。两段文本都只留在你的浏览器中。比较使用 Myers 算法(git diff 和 GNU diff 背后的算法),并设有时间限制,所以粘贴两个 5,000 行的文件也不会让页面卡住;几乎处处不同的输入会被报告为差异过大,而不是一直转圈。

使用方法

  1. 把原始文本粘贴到左侧,修改后的文本粘贴到右侧。比较会随输入实时进行。
  2. 查看新增和删除行的数量,然后浏览高亮的行。红色表示删除,绿色表示新增;颜色更深的高亮标出具体改动的词。
  3. 对于重新缩进过的代码,打开“忽略空白”;如果大小写不重要,打开“忽略大小写”。
  4. 切换到 JSON 模式,可按结构比较两个 JSON 文档,并得到有变化的路径列表。
  5. 将结果复制或下载为纯文本 diff,或点击“交换两侧”反向比较。

常见问题

如何比较两段文本的差异?

把一个版本粘贴到“原始”框,另一个粘贴到“修改后”框。被删除的行显示为红色,新增的行显示为绿色,有改动的行则两种颜色都有,并高亮改动的词。未改动的大段内容会被折叠,方便你在各处改动之间跳转;关闭“折叠未改动的行”即可查看全部内容。

并排 diff 和统一 diff 有什么区别?

并排视图把两个版本放在平行的两栏中,阅读文章和短行时最方便。统一视图只有一栏,删除的行标为 −,新增的行标为 +,这是 git 和补丁文件使用的格式,在窄屏上效果更好。两种视图显示的改动完全相同。

可以比较 JSON 文件并忽略键的顺序吗?

可以。切换到 JSON 模式。两侧都会被解析,对象按键逐一比较,与键出现的顺序无关;数组则按位置逐一比较,因为数组中的顺序通常是有意义的。你会得到一张列出所有新增、删除和修改路径的表格,以及两个文档按键排序并重新缩进后的逐行对比。

“忽略空白”有什么作用?

判断两行是否相同时,它把连续的空格和制表符视为一个空格,并忽略行首和行尾的空格。这样就能隐藏缩进变化和行尾空格,在代码被重新格式化后很有用。各行仍按你粘贴的原样显示。

有大小限制吗?

没有固定上限。在笔记本上,几千行的文件比较只需不到一秒,大段未改动的行会被折叠,页面始终保持流畅。如果两个大文件几乎每一行都不同,比较会在几秒后停止并提示你,而不会让标签页卡死。

我的文本会被上传吗?

不会。比较在你浏览器中的 JavaScript 里运行,你粘贴的任何内容都不会发送到服务器或被保存。因此它适合处理合同、源代码和含有密钥的配置文件——不过往任何网站粘贴内容时,常规的谨慎依然适用。

diff 是如何计算的

diff 会找出两个版本按顺序共有的最长行序列,其余部分都报告为删除或新增。本工具通过 jsdiff 库使用 Eugene Myers 1986 年提出的 O(ND) 算法:两段文本越相似(D,即差异数量越小)速度越快,差异越大则越慢,这就是设置时间限制的原因。

所谓改动的行,实际上是一行删除加上一行新增。当一组删除紧挨着一组新增时,工具会把它们逐行配对,并在每一对内部再做一次更细的按词或按字符比较。按词比较适合文章和大多数代码;按字符比较能精确显示一个字母的笔误或一个数字的改动。

常见用途

• 合同和政策:不必依赖对方的修改说明,就能准确看到对方改了哪些条款。

• 内容编辑:在批准之前,把已发布的文章与编辑的修订版进行比较。

• 配置文件:比较正常和出错的配置文件,或预发布环境和生产环境的环境文件。

• API 响应:在 JSON 模式下粘贴两个 JSON 响应,查看不同版本之间哪些字段发生了变化。

• 列表:比较两次导出的邮箱地址或 SKU。先用文本清理工具把两边都排好序,以免顺序不同造成干扰。

相关免费工具

  • 文本清理工具 — 一次性删除换行、多余空格、重复行和不可见字符,排序行,并进行查找替换。
  • JSON 格式化 — 格式化、压缩和校验 JSON,解析错误精确到行和列。在浏览器中运行,无需上传。
  • 大小写转换器 — 一键在十二种大小写格式间切换,从全部大写、句首大写到 camelCase、snake_case 和 kebab-case。
  • 字数统计 — 统计词数、字符数、句数和阅读时间,输入时实时检查 X、LinkedIn、Instagram、YouTube、SEO 和短信的字数限制。