Usando grep e egrep

Neste artigo darei uma introdução aos comandos grep e egrep. Para iniciantes em Linux, este artigo os ensinará a realizar buscas em arquivos e diretórios.

[ Hits: 213.921 ]

Por: Weslley Wellington em 29/04/2011


Introdução



Olá pessoal!

Bom, neste artigo vou dar uma introdução bem explicada sobre os comandos grep e egrep.

Para usuários novos, os comandos grep e egrep servem para realizar buscas de arquivos, pastas e linhas dentro de um documento.

Estes comandos usam expressões regulares (regex) para realizar as buscas de forma que o nome ou palavra desejada case com a expressão. Este arquivo será bem explicado, porém não irá englobar parâmetros de configuração dos comandos.

O que são expressões regulares (REGEX)

Uma expressão regular é um método formal de se especificar um padrão de texto.

Mais detalhadamente, é uma composição de símbolos, caracteres com funções especiais, que, agrupados entre si e com caracteres literais, formam uma sequência, uma expressão. Essa expressão é interpretada como uma regra, que indicará sucesso se uma entrada de dados qualquer casar com essa regra, ou seja, obedecer exatamente a todas as suas condições.

Pra que servem?

Basicamente servem para você dizer algo abrangente de forma específica. Definido seu padrão de busca, você tem uma lista (finita ou não) de possibilidades de casamento.

Em um exemplo rápido, [rgp]ato pode casar rato, gato e pato. Ou seja, sua lista "abrange especificamente" essas três palavras, nada mais.

Metacaracteres

Metacaracteres são símbolos que tem por finalidade a construção de ER(expressão regular). Cada metacaractere tem uma função, e estes são divididos em grupos como:
  • Quantificadores -> São meta caracteres que dizem quantas vezes o caractere anterior se repete.
  • Representantes -> São meta caracteres que casam com caracteres, porém estes casam apenas uma vez sendo eles definidos ou não pelos caracteres.
  • Âncoras -> Os tipos âncoras possuem metas que marcam o inicio da linha, o fim e borda.
  • Outros -> Nesta categoria existem metas que tiram o poder de metas caracteres que, metas que permitem alternar entre opções de casamentos, metas que permitem criar grupos e metas que repetem um grupo casado.

Abaixo vai os metacaracteres e o que eles fazem:
  • "." = O ponto casa qualquer coisa porém uma única vez.
  • "[...]" = A lista guarda dentro de si os caracteres permitidos para casar.
  • "[^...]" = A lista negada guarda dentro de si os caracteres não permitidos para casar.
  • "?" = O opcional permite que um caractere possa vir a aparecer ou não.
  • "*" = O asterisco permite que o caractere antecedente a ele não apareça ou apareça quantas vezes quiser.
  • "+" = Quase igual ao asterisco, porém o caractere antecedente deve aparecer no minimo uma vez.
  • "{n,m}" = Basicamente, {n,m} significa que o caractere antecedente aparecerá no minimo n vezes e no máximo m vezes.
  • "^" = O circunflexo marca o inicio, porém se ele estiver dentro de uma lista e for o primeiro elemento da lista ele nega os outros caracteres.
  • "$" = O cifrão marca o fim e só é válido no final da ER
  • "\b" = A borda marca uma borda, mais especificamente, uma borda da palavra.
  • "\" = O escape tira o poder de um metacaractere tornando-o um caractere normal
  • "|" = O alternativo (pipe) serve para casos onde precisamos casar uma palavra porém a mesma pode ter variações. Ou um ou outro.
  • "(...)" = Dentro de um grupo podemos ter um ou mais caracteres, metacaracteres e inclusive outros grupos!
  • "\n" = É retrovisor porque ele "olha pra trás", para buscar um trecho já casado.

Para maiores detalhes sobre expressões regulares abaixo vai um link. Este não é o foco do artigo só citei porque é necessário.
    Próxima página

Páginas do artigo
   1. Introdução
   2. grep
   3. egrep
   4. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

A origem do Linux

O incrível universo das PPA's do Ubuntu

Neo-PuppyBR - Um Linux novo para computadores antigos

FreeBSD Release 10.0 - Introdução ao sistema

Afinal, qual a melhor distribuição?

  
Comentários
[1] Comentário enviado por xerxeslins em 29/04/2011 - 14:00h

Legal! Bem didático. Era uma das coisas que eu queria saber um pouco. Valeu!

[2] Comentário enviado por foxbit3r em 29/04/2011 - 20:01h

Muito legal, parabéns!

[3] Comentário enviado por julio_hoffimann em 29/04/2011 - 20:54h

Oi Weslley, parabéns!

Expressões regulares são muito poderosas, poupam um trabalho enorme se bem aplicadas.

Para quem está pensando em usar o egrep, prefiram usar o grep -E, é a mesma coisa, mas o primeiro é obsoleto e só é mantido por compatibilidade com programas antigos. Mais informações: man egrep

Abraço!

[4] Comentário enviado por iz@bel em 29/04/2011 - 22:25h

Olha, isso era algo que eu realmente preciso aprender, gostei!
Vou ler depois com mais atenção!
Favoritei :D

[5] Comentário enviado por chimico em 30/04/2011 - 20:54h

Parabéns amigo, viva a linha de comando!

[6] Comentário enviado por matheusgf1539 em 11/03/2017 - 08:21h

muito bom


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts