【问题标题】:How to exclude all but particular files from diff如何从差异中排除除特定文件之外的所有文件
【发布时间】:2016-04-27 09:04:32
【问题描述】:

我知道如何使用diff -x 'pattern' file1 file2 选项从差异中排除文件。但我打算排除所有与“模式”不匹配的文件(一种包含选项)。使用排除正则表达式也没有成功:

pak@idefix:~$ diff -r -x '^?!.*?\bpattern\b)*$' dir1 dir 2

我已经检查了差异手册页,但找不到有用的东西,所以一些想法会很棒。

【问题讨论】:

  • 您是否真的尝试阅读info diff,官方diff 文档?
  • 是的,我做到了。我建议你误解了这个问题。排除文件不是问题。事实上,恰恰相反:排除任何文件,但那些匹配不同模式的文件除外。我认为不匹配的正则表达式会有所帮助,执行某种双重否定,但到目前为止我还没有为我工作。
  • 可能会生成一个文件,其中包含要与 dir1 进行差异的所有文件,并循环遍历与 dir2 差异的文件。

标签: regex linux shell diff


【解决方案1】:

您可以将find -inamediff -X 用作find dir1 dir2 -iname 'pattern' -exec basename {} \; | diff -r -X - dir1 dir2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 2014-07-25
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多