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.