Quando usar o egrep em vez do grep?

8

Agora estou me preparando para uma avaliação do terminal Linux, tentei pesquisar no Google e descobri que a maioria dos recursos está se referindo ao "grep" básico, em vez do "egrep" mais poderoso - bem, foi o que o professor disse na palestra.

Eu estou sempre trabalhando com pequenas amostras, para que o ajuste de desempenho seja algo muito distante.

Então, basicamente, eu gostaria de saber que existem áreas em que devo mudar para o egrep para fazer isso de uma maneira melhor? É seguro trabalhar com o "grep" básico, por enquanto? haverá riscos potenciais?

Desculpe pelo meu conhecimento limitado sobre os comandos do shell do Linux, a página de manual parece um labirinto para mim e, honestamente, não dediquei muito tempo a entender todos os recursos que os dois comandos fornecem.

Michael Mao
fonte

Respostas:

10

egrep = grep -E

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

"Corresponder usando expressões regulares estendidas. Trate cada padrão especificado como um ERE, conforme descrito na especificação XBD, Expressões regulares estendidas. Se qualquer padrão ERE inteiro corresponder a uma linha de entrada, a linha será correspondida. Um ERE nulo corresponde a todas as linhas."

Então, com o egrep você pode usar +, ?, | and ().

Ben
fonte
@omfgroflmao: isso faz toda a diferença? bem, agora me sinto confortável em focar apenas nos tutoriais "grep" sem me preocupar com o comando "egrep" :) Obrigado pela sua dica!
11
Independentemente de você chamar egrepou não grep -E, expressões regulares estendidas geralmente tornam os padrões complexos mais curtos e, portanto, mais fáceis de ler, removendo muitos ``. Não se trata de desempenho, mas é um caminho melhor em algum sentido.
Cascabel
5

O egrep está obsoleto. Use grep -E. Observe que grepencontra padrões de string para você. Se você quiser fazer algo em suas seqüências de caracteres depois de encontrá-las, precisará direcionar para uma ferramenta de processamento de seqüências de caracteres, como awk(ou o shell). A ferramenta que você também deve procurar é awk: ela awkencontra strings para você grepe faz o processamento para você, se necessário. Ele tem todas as coisas que grep / sed / etc faz em uma ferramenta útil.

user31894
fonte
@ ghostdog74: ahhh, então o egrep é recomendado para não ser usado ... Eu pensei que era o substituto do grep ... Obrigado pela sua dica!
2
Apenas para constar, em muitas máquinas, inclusive a minha, o egrep é um link para o grep. Ou seja, eles são realmente o mesmo comando exato, mas se comportam de maneira diferente, dependendo de como você os chama.
MJB 07/07