使用linux diff命令进行文档比较

生活
0 字 / 约 0 分钟
2010/12/11

一行命令、一页参数,快速搞定文本/网表/规则文件对比。


1. 最常用:三行搞定

bash
diff file1 file2              # 直接看差异
diff file1 file2 > result.txt # 结果重定向
diff -u file1 file2           # 统一格式(patch 常用)

2. 场景速配

需求命令示例
只看是否不同diff -q file1 file2
忽略空格/空行diff -bB file1 file2
忽略大小写diff -i file1 file2
递归比较目录diff -r dir1 dir2
并排显示diff -y --suppress-common-lines file1 file2
生成补丁diff -uNr old/ new/ > fix.patch

3. 关键参数速记

参数作用
-u / -U N统一上下文 N 行(patch 友好)
-y左右并列,一眼对齐
-r递归目录
-b / -w忽略空格 / 所有空白
-B忽略空行
-i忽略大小写
-q仅给出“是否不同”的结论
--exclude=*.bak跳过备份文件

4. 结果速读

2c2                 # 第 2 行被 change
3a4                 # 第 3 行后 add 一行
5d4                 # 第 5 行被 delete

统一格式 -u 输出可直接用 patch 应用。


5. 实例:IC 版图常用

bash
# 使用linux diff命令进行文档比较
diff -u top.v.old top.v.new > top.patch

# 2) rule 文件忽略空格
diff -b rule1.drc rule2.drc

# 3) 目录递归,跳过 .svn
diff -r --exclude=.svn rtl_old rtl_new | less

记住 diff -udiff -y,日常 90 % 场景全搞定。