Mateus Müller

O carinha do Linux

03 set. 2017

LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?

No artigo 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:

Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?

Agora sim, vamos iniciar:

$ grep “Lorem” teste.txt
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?

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
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?

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 metacaracter? 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
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?

Agora com fgrep:

$ fgrep “.” teste.txt
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?
Dica LPIC-1: Qual a diferença entre GREP, EGREP e FGREP?

Agora ele conseguiu filtrar pelo metacaracter “.”.

Bom pessoal, esta é a diferença entre GREP, EGREP e FGREP!

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

Comentários Disqus