文本 diff 对比工具

改完一个配置文件,想看改了哪些行?两段日志对比,定位问题点?这个工具 30 秒给你答案。

背景

数通工程师日常:

  • 改完 B 设备配置,要和 A 设备对比看是否一致
  • 抓了两段不同时期的日志,找变化点
  • 写代码前 review 同事提交的 PR

之前都是 diff -u 或者 WinMerge,但这些工具要么需要装客户端,要么不支持中文/HTML 显示。

干脆做一个网页版的。

它能做什么

文本 diff 工具

  • 左右两栏输入待对比文本
  • HTML 表格高亮差异(红/绿/黄)
  • 上下文格式:默认显示 3 行上下文
  • 纯文本 也能看清修改位置
  • ✅ 适合中文 /代码 /配置

使用场景

场景 1:对比两台交换机配置

原配置:                            修改后:
interface Vlan10                   interface Vlan10
 ip address 192.168.10.1            ip address 192.168.10.2
 no shutdown                        shutdown

差异一眼可见:IP 改了,shutdown 多了

场景 2:对比日志

[2026-08-10 09:00] server start   |  [2026-08-10 09:00] server start
[2026-08-10 09:01] load=0.5      |  [2026-08-10 09:01] load=1.2
[2026-08-10 09:02] OK             |  [2026-08-10 09:02] WARN

核心实现

Python 标准库 difflib.HtmlDiff

import difflib

text1 = """line 1
line 2 original
line 3
line 4""".splitlines()

text2 = """line 1
line 2 modified
line 3
line 4""".splitlines()

# 生成 HTML 表格
html = difflib.HtmlDiff(wrapcolumn=80).make_table(
    text1, text2,
    fromdesc='原始文本',
    todesc='修改后',
    context=True,    # 显示上下文
)

difflib.HtmlDiff 直接输出 <table> HTML,不用自己实现算法(Myers diff 算法)。它背后的核心算法是"最长公共子序列(LCS)" —— 1960 年代的技术至今还在用。

在线使用

👉 文本 diff 对比

进阶:diff 工具对比

工具 客户端/网页 适合
本工具 网页 快速分享、跨平台
diff -u 命令行 Linux 运维、git 提交
WinMerge 客户端 Windows 用户、文件夹对比
Beyond Compare 客户端 专业 diff(付费)

日常 80% 的场景,这个网页工具就够用了。


📱 关注公众号「网英的日常」,不错过新工具上线!