何时使用egrep代替grep?


8

我现在正在为Linux终端评估做准备,我尝试使用Google,发现大多数资源都指的是基本的“ grep”,而不是功能更强大的“ egrep”,好吧,至少这是教授在演讲中所说的。

我一直在处理小样本,因此性能调优离得太远了。

所以基本上我想知道在哪些地方我必须切换到egrep才能更好地做到这一点?就目前而言,使用基本的“ grep”是否安全?会有潜在的风险吗?

抱歉,由于我对Linux Shell命令的了解有限,因此手册页对我来说就像一个迷宫,老实说,我没有花太多时间来了解这两个命令提供的所有功能。

Answers:


10

egrep = grep -E

http://www.opengroup.org/onlinepubs/007908799/xcu/grep.html

“使用扩展正则表达式进行匹配。按照XBD规范扩展正则表达式中的描述,将每个模式都指定为ERE。如果有任何完整的ERE模式与输入行匹配,则该行将匹配。空ERE将与每行匹配。”

因此,使用egrep可以使用+, ?, | and ()


@omfgroflmao:是所有不同吗?好吧,现在我很轻松地只关注“ grep”教程,而不必担心“ egrep”命令:)谢谢您的提示!

1
无论您是调用它egrep还是grep -E,扩展正则表达式通常都会使复杂的模式更短,因此通过删除很多``可以更容易阅读。这与性能无关,但是从某种意义上讲是一种更好的方法。
卡斯卡贝尔

5

egrep已弃用。使用grep -E。请注意,这会grep为您找到字符串模式。如果要在找到字符串后对它们做些事情,则必须通过管道连接到字符串处理工具,例如awk(或shell)。您应该查找的工具是awkawk它很像为您查找字符串grep,并在需要时为您进行处理。它具有grep / sed / etc在一个方便的工具中所做的所有事情。


@ ghostdog74:啊,所以建议不要使用egrep ...我认为它是grep的替代品...谢谢您的提示!

2
仅作记录,在很多机器上都包括我的,egrep是grep的链接。也就是说,它们实际上是完全相同的命令,但是根据您如何调用它们,行为会有所不同。
MJB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.