linux egrep和grep区别,Linux中的Grep,Egrep和Fgrep有什么区别?

在Unix系统上的一个着名的搜索工具,可以用于搜索任何东西,无论是一个文件,或一行或多行的文件是grep实用程序。它在功能上非常庞大,这可以归因于它支持的大量选项:使用字符串模式或reg-ex模式或基于perl的reg-ex等搜索。

1690d2ff27eb5f0a54c86d5489d24a6e.png

在Linux中grep,egrep和fgrep之间的区别

由于其不同的功能,它有许多变种包括grep,egrep的 (ExtendedGREP), 比fgrep( Fixedgrep)来 指派 ,(ProcessGREP),rgrep( Recursive GREP)等,但这些变异体有轻微的差异,原来的grep这使得他们受欢迎并被各种Linux程序员用于特定任务。

这还有待调查的主要的事情是什么是三个主要变量之间的差异,即'grep“,”egrep'和grep,使得Linux用户选择一个或另一个版本按规定的'fgrep“一样。

一些特殊的元字符grep

+ -相当于前一个字符的一次或多次出现。

? -这是指近1重复前一个字符。 这样的: a?将匹配'a'或'AA'。

( -交替表现的开始。

) -交替表达的结束。

| -匹配或者通过分离式的'|' 像: “(a|b)cde”将匹配要么“ABCDE”或“bbcde”。

{ -这个元字符表示的范围说明符的开始。 这样的: “a{2}”中的文件匹配“AA”即2倍。

} -这个元字符表示范围说明结束。

grep,egrep和fgrep之间的区别

的grep,egrep 的和比fgrep之间的一些主要差异可以如下突出显示。对于这组示例,我们假设正在执行操作的文件是:

557f607b4056afcd1e0a397a21311d17.png

Linux grep命令

Grep命令

grep或者全局正则表达式打印是类Unix系统主要的搜索程序,它可以搜索文件的任何文件或文件列表,甚至任何命令的输出的任何类型的字符串。

的基本的正则表达式除了正常的字符串作为搜索模式。 在基本正则表达式(BRE),元字符,如: '{','}' '(',')' , '|' '+' '?'失去其意义,被视为普通字符字符串,如果它们被视为特殊字符,则需要进行转义。

$ grep -C 0 '(f|g)ile' check_file

$ grep -C 0 '\(f\|g\)ile' check_file

f336ad16fdf695a12cbec8b99e5de44a.png

Linux grep命令示例

喜欢这里,当命令没有逃脱运行'(' ')'和'|'然后搜索整个字符串即“(f|g)ile”的文件中。 但是,当特殊字符了逃脱,然后,而不是把它们当作字符串的一部分,grep的对待他们的元字符和搜索词“file”或“gile”的文件中。

Egrep命令

EGREP或者grep的-E是grep或者扩展的grep的另一个版本。这个版本的grep是高效和快速的,当它涉及到搜索正则表达式模式,因为它对待元字符,因为不替换为字符串,如grep,因此你摆脱它们的负担逃避他们在grep。它使用ERE或扩展正则表达式集。

在egrep的情况下,即使你不转义元字符,它会将它们视为特殊字符,并替换它们的特殊意义,而不是将它们视为字符串的一部分。

$ egrep -C 0 '(f|g)ile' check_file

$ egrep -C 0 '\(f\|g\)ile' check_file

59a76ec10ac0a1d3c861dcc7168a691d.png

Linux egrep命令示例

喜欢这里,egrep的搜索“file”字符串时的元字符都没有逃脱,因为它会通过这些字符的意思意思。 但是,当这些字符了逃脱,然后egrep的对待他们作为字符串的一部分,并寻找完整的字符串“(f|g)ile”的文件中。

fgrep命令

fgrep一样或固定grep或者grep的-F是grep的是在快速搜索时涉及到搜索整个字符串,而不是正则表达式,因为它不承认正则表达式,无论任何元字符的另一个版本。对于搜索任何直接字符串,这是应该选择的grep的版本。

Fgrep搜索完整的字符串,甚至不识别特殊字符作为正则表达式的一部分,即使转义或未转义。

$ fgrep -C 0 '(f|g)ile' check_file

$ fgrep -C 0 '\(f\|g\)ile' check_file

a6098f3049bb493ec89f04091222354c.png

Linux fgrep命令示例

就像,当元字符都没有逃过,比fgrep搜索的完整字符串“(f|g)ile”的文件中,当元字符进行转义,则比fgrep命令搜索“\(f\|g\)ile”的所有字符是在文件中。

我们已经介绍了一些grep命令的实际例子,你可以在这里阅读它们,如果你想在Linux中获得更多的grep命令。

结论

以上强调是'grep','egrep'和'fgrep'之间的差别。除了使用的正则表达式集合和执行速度的差异外,rest命令行参数对于grep的所有三个版本保持相同,甚至代替“egrep”或“fgrep”,“grep -E”或“grep- F“。

如果您发现这三个版本的grep之间的任何其他差异,请在您的评论中提及它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值