我正在搜索出现 foo 和数字 5、6 或 7 之一的行,但我只想要它们(foo 和上述数字之一)彼此间隔不超过 20 个字符的行。到目前为止,我想出的最接近但无济于事的事情是:
grep -rniE "foo(.*){0,20}[567]" .
我确信我的模式存在一些基本错误,但我现在看不到它。
最佳答案
问题出在这里:
(.*)
*
是贪婪的。您想要匹配任意字符的零到二十个实例。说:
grep -rniE 'foo(.){0,20}[567]' .
关于linux - grep 搜索模式中间的上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088358/