A diferença entre grep, egrep e fgrep

Publicado por Mateus Gabriel Müller em 08/10/2017

[ Hits: 30.516 ]

Blog: http://4fasters.com.br/

 


A diferença entre grep, egrep e fgrep



Na dica de hoje, venho mostrar a diferença entre os comandos de filtragem de texto grep, egrep e fgrep de forma muito simples e resumida. Esse é, inclusive, um requisito para a certificação LPIC-1.

O que é o grep

O grep é um utilitário já embutido no Kernel para efetuar um filtro durante uma pesquisa. Por exemplo: durante esta pesquisa, quero que você me retorne somente os arquivos com a extensão .doc. Isso é possível com o grep.

O que é o egrep

O egrep é um atalho para o comando grep -E. A opção -E permite o uso de expressões regulares para filtragem de texto. Por exemplo: +, |, () etc.

O que é o fgrep

O fgrep é um atalho para o comando grep -F. Por padrão, o grep não trata metacaracteres como filtros, como, por exemplo, o ponto ".". O fgrep então habilita esta opção de filtragem.

Ficou confuso? Vamos a alguns exemplos para ficar mais claro.

Eu criei um arquivo de texto aleatório e colei o seguinte conteúdo:
Vamos lá então!

grep "Lorem" teste.txt
O grep busca por palavras-chave. Mas, e se quisermos filtrar por mais de uma palavra? Teremos que usar regex (expressões regulares) e é aí que o egrep entra.

egrep "Lorem|mauris" teste.txt
Neste caso, estamos pedindo para buscar as instâncias da palavra Lorem ou mauris.

E se eu quiser filtrar por todas as instâncias que tenham um metacaractere? Como o grep entende como uma expressão regular, devemos usar o fgrep para isso.

Veja, testando com grep o filtro por ".".

grep "." teste.txt
Agora com fgrep:

fgrep "." teste.txt
Agora ele conseguiu filtrar pelo metacaracter ".".

Bom pessoal, de forma simples esta é a diferença entre eles.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Nagios monitorando link rádio Cambium PTP 600

Como instalar temas

Para iniciantes que ainda precisam de um por quê migrar para o Linux

Configurar repositório APT local no Debian sem a necessidade de configurar o Apache

Criando disquetes de inicialização (boot)

  

Comentários
[1] Comentário enviado por eduardo em 09/10/2017 - 14:11h

Simples e eficiente! Parabéns pelo artigo.
Abraço

[2] Comentário enviado por elgio em 12/10/2017 - 20:42h

Olá.

Legal a iniciativa de abordar um assunto cobrado em certificação.

Mas vi alguns problemas no que você escreveu:

1) grep não é do kernel. É um aplicativo como qualquer outro

2) grep interpreta expressões regulares tal como egrep. Ocorre que o egrep interpreta as expressões regulares estendidas. Uma expressão regular, por exemplo, para procurar números que se repetem uma ou mais vezes:
grep "[0-9]\+"...
egrep "[0-9]+"...

Além das diferenças de escape, expressões e estendidas são melhores. O Perl meio que inaugurou as estendidas. Chegou-se ao ponto de dizer "sintaxe Perl".



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts