grep、fgrep 和 egrep 之间的区别

grep、fgrep 和 egrep 之间的区别

两者之间有什么区别 grepfgrepegrep?有哪些不同使用它们的例子?

答案1

man grep

变体程序 egrepfgrep 和 分别与、和rgrep相同。这些变体已弃用,但为了向后兼容而提供。grep -Egrep -Fgrep -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 -Egrep -P当基本正则表达式不能满足您的需求时才使用,因为匹配速度会更慢。

答案2

Linux 中的 Grep、Egrep 和 Fgrep 有什么区别? - TecMint很好地解释了差异。这三个都使用相同的代码执行相同的操作,但具有不同的选项。

egrep是相同的grep-E、口译图案作为扩展正则表达式。它将元字符视为原样,而不会像原始的 那样将它们替换为字符串。Ubuntu使用的grepGNU 的,在基本语法和扩展语法之间的可用功能上没有区别(与其他一些发行版中的原始语法不同)。grepgrep

fgrep是相同的grep-F. 口译图案 作为固定字符串列表(而不是正则表达式),用换行符分隔,其中任何一个都可以匹配。它不识别正则表达式,也不识别任何元字符。对于搜索任何直接字符串,它更快,因此应该grep选择这个版本。

相关内容