Pattern Syntax
-E, --extended-regexp
Interpret PATTERNS as extended regular expressions (EREs, see below).
-F, --fixed-strings
Interpret PATTERNS as fixed strings, not regular expressions.
-G, --basic-regexp
Interpret PATTERNS as basic regular expressions (BREs, see below).
This is the default.
-P, --perl-regexp
Interpret PATTERNS as Perl-compatible regular expressions (PCREs).
This option is experimental when combined with the -z (--null-data)
option, and grep -P may warn of unimplemented features.
见
man grep
:和
grep -F
当你没有匹配的模式时更喜欢,因为它要快得多。grep -E
,尤其是grep -P
仅在基本正则表达式不能满足您的需求时使用,因为匹配会更慢。Linux 中的 Grep、Egrep 和 Fgrep 有什么区别?- TecMint 很好地解释了差异。这三个都用相同的代码做同样的事情,但有不同的选择。
egrep
与将PATTERN解释为扩展正则表达式相同。它按原样处理元字符,而不像原来的那样将它们替换为字符串。Ubuntu 使用的GNU's在基本语法和扩展语法之间的可用功能上没有区别(与其他发行版中的原始语法不同)。grep
-E
grep
grep
grep
fgrep
是一样的。将PATTERN解释 为固定字符串列表(而不是正则表达式),由换行符分隔,其中任何一个都将被匹配。它不识别正则表达式,也不识别任何元字符。对于搜索任何直接字符串,它会更快,因此应该选择它的版本。grep
-F
grep