diff命令是linux操作系统自带的命令行工具,可以用来对比两个文件或者文件夹。
diff有很多option,常用的如下:
w 忽略空白字符的差异
i 忽略大小写的差异
q 只显示有无差异,不显示具体差异
y 并列的方法显示
r 递归对比子文件夹和文件
s 文件内容相同,仍然显示,标记为identical
例1:对比两个verilog文件,并忽略空白字符的差异
diff -w a.v b.v
例2:递归对比两个文件夹,不显示详细差异
diff -rqw rtl1 rtl2
例3:列出两个文件夹中的内容无变化的文件
diff -rqws rtl1 rtl2 | grep "identical"
需要注意的是diff只支持两个文件的对比,比较三个文件用另一个命令diff3。
差异主要分三种,删除(d)、添加(a)、修改(c)。左侧文件的内容用<开头,右侧文件的内容用>开头。如下图所示。


vimdiff
emacs ediff
python difflib
perl Text::Diff
Kompare(KDE)
meld
beyond compare(收费)