两者之间有什么区别 grep,fgrep
和egrep
?有哪些不同使用它们的例子?
答案1
看man grep
:
变体程序
egrep
、fgrep
和 分别与、和rgrep
相同。这些变体已弃用,但为了向后兼容而提供。grep -E
grep -F
grep -r
和
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.
- 当您没有模式需要匹配时,请选择它
grep -F
,因为它速度更快。 grep -E
仅grep -P
当基本正则表达式不能满足您的需求时才使用,因为匹配速度会更慢。
答案2
Linux 中的 Grep、Egrep 和 Fgrep 有什么区别? - TecMint很好地解释了差异。这三个都使用相同的代码执行相同的操作,但具有不同的选项。
egrep
是相同的grep
-E
、口译图案作为扩展正则表达式。它将元字符视为原样,而不会像原始的 那样将它们替换为字符串。Ubuntu使用的grep
GNU 的,在基本语法和扩展语法之间的可用功能上没有区别(与其他一些发行版中的原始语法不同)。grep
grep
fgrep
是相同的grep
-F
. 口译图案 作为固定字符串列表(而不是正则表达式),用换行符分隔,其中任何一个都可以匹配。它不识别正则表达式,也不识别任何元字符。对于搜索任何直接字符串,它更快,因此应该grep
选择这个版本。