文本对比
改过一版的东西和原版差在哪,肉眼一行行对既慢又容易漏。文本对比把两段文字按行做最长公共子序列比较,相同的留白、新增标绿加 +、删除标红减 -,让差异一眼可见。
适合核对两份配置或文案的改动、比较合同改稿前后、检查代码片段两版区别、验证复制粘贴有没有丢行。左框放「原文」、右框放「对比文本」,下面即时出结果。
结果区每行左侧有行号、中间是 +、- 或空格的标记,右侧文字按类型上色:新增绿底、删除红底。右上「新增 N / 删除 N」给出行数统计。
怎么用
- 放两段文本在左「原文」框放旧内容、右「对比文本」框放新内容(两框已预置一段示例,替换即可)。
- 看高亮下方结果即时刷新:两边一样的行正常显示,只在右边出现的行标绿带 +(新增),只在左边出现的行标红带 -(删除)。
- 只看差异勾「只看差异行」把完全相同的行折叠掉,结果里只剩新增和删除,改动多、相同少时更清爽。
- 读计数勾选框右侧显示「新增 N」「删除 N」两个数,快速了解这版比原版多了几行、少了几行。
示例
原文:第一行 / 第二行 / 第三行 / 第四行;对比文本:第一行 / 第二行改 / 第三行 / 第五行
删除 第二行、新增 第二行改、删除 第四行、新增 第五行(新增 2 · 删除 2)
改一个字会被算成整行删除加整行新增;第一行、第三行两边相同,勾「只看差异行」时不列出。
深入一点
按整行比较,不做行内字符
一行里改了任何一个字,结果是「删掉旧行 + 新增新行」两行,而不是把改动的字单独标出来。要看细粒度差异得逐字比对,这页达不到。
想把两段先整理成规整的行(去空行、去重、统一大小写)再比,可以先在文本处理工具里各过一遍,再粘回这两个框。
想快速确认两段是不是一模一样,看新增和删除两个计数是否都为零,比逐行扫一眼更省事;如果只是核对某一句还在不在,照着加减标记和行号定位即可,不必通读全文。
顺序变了会被当成删加
把中间两行调换顺序,比较器可能报成先删后增,而不是「移动」。它只认哪些行在两边都出现,不追踪行被挪去了哪里。
所以它更适合回答改了哪些内容,而不是精确还原每一步编辑动作,比如到底是删了又插回、还是整块挪了位置。真要精确到词,得另找逐字比对的工具。
行号是各自文本里的位置
结果每行的行号取自它所属的那一侧(新增看右框、删除看左框),方便你回到原文定位;不是全局连续编号。
正因为行号各按各的框,删除行只有左侧号、新增行只有右侧号;勾「只看差异行」时相同行的号也不显示,方便你直接对着原文改。
要动手改原文时,照着这些号回到对应那一行就行,不用自己从头一行行数过来。
注意事项
- 全在浏览器本地比较,两段文本都不上传。
- 用的是最长公共子序列算法,文本很大(上万行)时会更慢、也更占内存。
- 空行、纯空格行也参与比较,两个空格不等于相同。
- 行尾换行符差异(Windows 与 Unix 的换行)会被统一按行切,不当作差异。
- 两个框是即时双向比较,改任意一边结果都跟着变,没有需要点的比较按钮。
- 高亮只区分新增、删除、相同三类,不额外标注某行是被移动还是重排。