我在 SuperUser 上回答了这个问题,该问题与 grepping 输出时使用的正则表达式类型有关。
我给出的答案是这样的:
tail -f log | grep "some_string.*some_string"
然后,在对我的回答的三条评论中,@Bob写道:
.*
是贪婪的,可能会捕获比你想要的更多的东西。.*?
通常会更好。
那么这个,
the
?
是 上的修饰符*
,使其变得懒惰而不是贪婪的默认值。假设 PCRE。
我用谷歌搜索PCRE
,但在我的答案中无法理解这有什么意义?
最后这个,
我还应该指出,这是正则表达式(grep 默认执行 POSIX 正则表达式),而不是 shell glob。
我只知道 Regex 是什么以及它在 grep 命令中的基本用法。所以,我无法得到这 3 条评论中的任何一条,我有这些问题:
.*?
vs.的用法有什么区别.*
?- 哪个更好,在什么情况下?请提供例子。
也有助于理解评论,如果有人可以
更新:作为问题的答案Regex 与 Shell Globs 有何不同? @Kusalananda在他的评论中提供了这个链接。
注意:如果需要,请在回答参考上下文之前阅读我对此问题的回答。