如何用Linux Diff 来比较文件夹

在工作中需要比较两个文件夹,并且将比较结果输出成文件。

我到处找工具,不过大部分都是基于GUI的,Kdiff3, Beyond Compare, Arixis Merge, 这些工具也有命令行,但是

$ kdiff3 file1 file2 -o re.txt

仍然会进入GUI界面,不会把两个文件的差异输出到文件里。

说到底,这些比较工具的设计思想是比较文件的差异和合并文件,需要我们一个一个的查看文件的差异,不会把所

有的差异输出到文件里。

当我们比较一个有很多文件的文件夹时,我们没法知道两个文件夹的总体差异。


找来找去,还是Linux下的Diff能满足要求:

以下是为了比较高通的Modem Release

$ diff -r ~/90/modem_proc ~/70/modem_proc -X ex.txt -I 'Q[Uu][Aa][Ll][Cc][Oo][Mm][Mm]'|tee result.txt
Note: -X to filter the file type, 用-X 后面跟一个文件来过滤掉不需要的文件类型。
ex.txt is a file including the file tpye, content is below, per type per line,这个文件里每种类型占一行。
*.map
*.hex
*.lib
*.o
*.lst
*SConscript
*.elf
*.i
*.cmm
*.txt
*.min
*.cmd
*.pp
*.bin
*.sym
*.scons
*.elfweaver
*.hash
*.pbn
*.pyc
*.sconscript
*.tmp
*.complog
*.py
*.pyc
*.xml
*.pl
*.api
*.log

-I 'Q[Uu][Aa][Ll][Cc][Oo][Mm][Mm]'

-I 后面接一个正则表达式,上面是为了过滤掉包含高通字符串的行,因为这些行仅仅是改变了注释,不会对代码有影响。但是只支持比较简单的正则表达式,对合并的正则表达式不支持,例如:'(Q[Uu][Aa][Ll][Cc][Oo][Mm][Mm]|\$Header)'


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值