我正在运行以下命令:
grep -REin "Example::" .
我正试图更多地过滤我的结果。我希望将所有内容与Example::
进行匹配,除非它以return
开头,例如return Example::
。
MATCH
if (Example::test())
不匹配
if (something()) return Example::another()
答案 0 :(得分:4)
您可以使用-v
(反转匹配)选项执行以下操作。
grep -REin 'Example::' . | grep -vi 'return Example::'
或者使用选项-P
,它将模式阐明为Perl正则表达式。
grep -RPin '(?<!return )Example::' .
这使用Negative Lookbehind来断言前面的内容不是返回这个词。
(?<! # look behind to see if there is not:
return # 'return '
) # end of look-behind
Example:: # 'Example::'
答案 1 :(得分:1)
您可以使用awk
来解决此问题:
awk '/Example/ && !/return Example/' file
if (Example::test())