2016-04-27 86 views
0

我知道如何使用diff -x 'pattern' file1 file2选项将文件从diff中排除。但我打算排除所有不匹配“模式”的文件(一种包含选项)。使用正则表达式排除没有做的伎俩之一:如何从比较中排除除特定文件以外的所有文件

[email protected]:~$ diff -r -x '^?!.*?\bpattern\b)*$' dir1 dir 2 

我已经检查了差异手册页,但无法找到有用的东西,所以一些想法将是巨大的。

+0

您是否真的试过阅读'info diff',官方'diff'文档? – Dummy00001

+0

是的,我做到了。我建议你误解了这个问题。排除文件不是问题。实际上,情况正好相反:排除任何文件,但排除与独特模式匹配的文件。我认为一个不匹配的正则表达式可以帮助执行某种双重否定,但到目前为止我还没有为我工作。 – krouch

+0

也许会生成一个文件,其中包含所有要从'dir1'区分的文件,并循环该文件与'dir2'的区别。 –

回答

0

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

相关问题