¿Cuándo usar egrep en lugar de grep?

8

Me estoy preparando para una evaluación de terminal de Linux ahora, traté de buscar en Google y descubrí que la mayoría de los recursos se refieren al "grep" básico en lugar del "egrep" más poderoso, bueno, eso es al menos lo que dijo el profesor en la conferencia.

Siempre estoy trabajando con muestras pequeñas, por lo que el ajuste del rendimiento está muy lejos.

Entonces, básicamente, me gustaría saber ¿hay áreas en las que deba cambiar a egrep para hacerlo de una mejor manera? ¿Es seguro trabajar con "grep" básico por ahora? ¿habrá riesgos potenciales?

Perdón por mi conocimiento limitado sobre los comandos de shell de Linux, la página del manual me parece un laberinto y, sinceramente, no he dedicado mucho tiempo a comprender todas las funciones que proporcionan ambos comandos.

Michael Mao
fuente

Respuestas:

10

egrep = grep -E

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

"Haga coincidir el uso de expresiones regulares extendidas. Trate cada patrón especificado como un ERE, como se describe en la especificación XBD, Expresiones regulares extendidas. Si algún patrón ERE completo coincide con una línea de entrada, la línea coincidirá. Un ERE nulo coincide con cada línea".

Entonces, con egrep puedes usar +, ?, | and ().

Ben
fuente
@omfgroflmao: ¿es esa la diferencia? bueno, ahora me siento cómodo al solo enfocarme en los tutoriales "grep" sin preocuparme por el comando "egrep" :) ¡Gracias por tu consejo!
1
Ya sea que lo llame egrepo grep -E, las expresiones regulares extendidas generalmente hacen que los patrones complejos sean más cortos y, por lo tanto, más fáciles de leer al eliminar mucho ``. No se trata de rendimiento, pero es una mejor manera en algún sentido.
Cascabel
5

egrep está en desuso. Uso grep -E. Tenga en cuenta que grepencuentra patrones de cadena por usted. Si desea hacer algo a sus cadenas después de encontrarlas, entonces debe canalizar a una herramienta de procesamiento de cadenas como awk(o el shell). La herramienta que también debe buscar es awk, ya que también awkencuentra cadenas para usted grepy realiza el procesamiento por usted si lo necesita. Tiene todas las cosas que grep / sed / etc hace en una herramienta práctica.

usuario31894
fuente
@ ghostdog74: ahhh, por lo que se recomienda no utilizar egrep ... pensé que era el reemplazo de grep ... ¡Gracias por tu consejo!
2
Solo para el registro, en muchas máquinas, incluida la mía, egrep es un enlace a grep. Es decir, en realidad son el mismo comando exacto, pero se comportan de manera diferente según cómo los llame.
MJB