如何使用grep查找包含一个模式但没有第二个模式的所有文件?

Her*_*rms 5 shell grep

有没有一种简单的方法使用grep(或与其他标准命令行工具结合)来获取包含一个模式但没有第二个模式的所有文件的列表?

在我的具体情况下,我想要一个包含该模式的所有文件的列表:

override.*commitProperties
Run Code Online (Sandbox Code Playgroud)

但不包含:

super.commitProperties
Run Code Online (Sandbox Code Playgroud)

我在Windows上,但广泛使用cygwin.我知道如何找到第一个模式的所有文件或没有第二个模式的所有模式,但我不知道如何组合这些查询.

我更喜欢通用的答案,因为我感觉很多其他人都会发现这种类型的查询很有用.这对我来说很容易采用通用解决方案并插入我的价值观.我只是包含了我的具体实例,以便于解释.

Dou*_*der 10

grep -rl "override.*commitProperties" . | xargs grep -L "super.commitProperties"
Run Code Online (Sandbox Code Playgroud)

-l 打印匹配的文件

-L 打印文件没有匹配