You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GNU/Linux下是否有非对称diff选项?特定diff功能需求咨询

GNU/Linux下的非对称diff实现方法

你要的这种只显示a.txt中独有的行或相对b.txt修改过的行的需求,用系统自带工具就能实现,以下是几种实用方法:

用diff原生选项实现

diff本身支持通过格式控制参数实现非对称输出,执行命令:

diff --changed-group-format='%<' --unchanged-group-format='' a.txt b.txt
  • --changed-group-format='%<':指定两行存在差异时,只显示第一个文件(a.txt)的内容
  • --unchanged-group-format='':让diff不输出两个文件中完全相同的行
    这个命令会同时显示a.txt中修改过的行和仅在a.txt存在的行,完全匹配你的需求。

用comm命令找a.txt独有的行

如果只需要找出a.txt中完全不存在于b.txt的整行内容(修改过的行因内容不同也会被视为独有),可以用comm:

comm -23 a.txt b.txt

注意:使用comm前建议先对两个文件排序,否则可能结果不准确,比如先执行sort a.txt > a_sorted.txt、sort b.txt > b_sorted.txt,再用comm处理排序后的文件。

用grep快速筛选

grep的反向匹配功能也能实现类似效果,适合快速查找a.txt中不在b.txt里的行:

grep -Fxvf b.txt a.txt
  • -F:把b.txt里的内容当作固定字符串而非正则表达式
  • -x:只匹配整行完全相同的内容
  • -v:反向匹配,输出不匹配的行
  • -f:从b.txt读取匹配模式

内容的提问来源于stack exchange,提问作者josinalvo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:47:02