Bóson Treinamentos em Ciência e Tecnologia

Buscar padrões em textos com comando grep no Linux

Procurar padrões em arquivos com grep no Linux

Como procurar padrões em textos com o comando grep no Linux

O comando grep no Linux é uma ferramenta bastante interessante e muito útil para realizar pesquisa de texto em arquivos e na saída de outros comandos. Seu nome vem de “Global Regular Expression Print“, pois ele permite buscar padrões usando expressões regulares.

Trata-se de uma ferramenta extremamente versátil e pode ser utilizado para localizar linhas específicas em arquivos, realizar pesquisas avançadas e filtrar dados com precisão.

Neste artigo veremos como usar o grep para realizar busca em textos de forma simplificada.

Sintaxe Básica do Comando grep

A sintaxe básica do grep é:

grep [opções] padrão arquivo

Os parâmetros mais comuns são:

Exemplos de Uso do Comando grep

1. Buscar uma Palavra em um Arquivo

Para localizar uma palavra exata em um arquivo, basta especificar o termo e o arquivo. Vamos criar um arquivo de nome arquivo.txt e inserir algum conteúdo nele:

$ ls -l > arquivo.txt

E então buscar uma palavra dentro do arquivo, como a palavra “Documentos”:

$ grep "Documentos" arquivo.txt

Este comando exibe todas as linhas em arquivo.txt que contêm a palavra “Documentos”.

2. Pesquisa Insensível a Maiúsculas e Minúsculas

Para ignorar diferenças entre maiúsculas e minúsculas, usamos a opção -i:

$ grep -i "documentos" arquivo.txt

Este comando encontra “documentos”, “Documentos”, “DOCUMENTOS”, etc.

3. Contar Ocorrências de um Padrão

Para contar em quantas linhas um padrão ocorre em um arquivo, utilizamos a opção -c, Por exemplo, em quantas linhas a palavra “fabio” ocorre no arquivo.txt?

$ grep -c "fabio" arquivo.txt

Aqui, o grep mostra o número total de linhas contendo “fabio” no arquivo.

4. Exibir Números das Linhas

Para exibir o número das linhas onde o padrão é encontrado, usamos -n:

$ grep -n "fabio" arquivo.txt

Cada linha que contém a palavra “fabio” será exibida com seu número correspondente em arquivo.txt.

5. Buscar Recursivamente em Diretórios

A opção -r permite buscar em arquivos dentro de um diretório e seus subdiretórios:

$ grep -r "fabio" /home/fabio

Esse comando busca o termo “fabio” em todos os arquivos dentro do diretório /home/fabio.

Opcionalmente nesse caso, poderíamos usar o caracter curinga ~:

$ grep -r "fabio" ~

6. Buscar Linhas que Não Contêm um Padrão

Para encontrar linhas que não contêm o termo especificado, use a opção -v:

$ grep -v "4096" arquivo.txt

O comando acima exibe todas as linhas de arquivo.txt que não contêm a string “4096”.

7. Buscar com Expressões Regulares

O grep é muito poderoso com expressões regulares. Por exemplo, para localizar palavras que começam com “D” e terminam com “s”:

$ grep "\bD[a-z]*s\b" arquivo.txt

Esse comando localiza palavras como “Documentos” e “Downloads” em arquivo.txt.

8. Exibir Apenas o Nome do Arquivo

Para listar apenas os nomes dos arquivos onde o padrão foi encontrado, usamos -l:

$ grep -l "fabio" *.txt

Se o termo “fabio” for encontrado em um ou mais arquivos, apenas os nomes desses arquivos serão listados.

Opções Adicionais Úteis do grep

Exercícios Práticos com Resolução

Vejamos agora alguns exercícios extras para treinarmos o uso do comando grep no Linux.

Para tal vamos criar um arquivo de nome “grep.txt” com o conteúdo das páginas de ajuda do próprio comando man, como segue:

$ man man > grep.txt

Exercício 1: Encontrar um Termo em um Arquivo

Instrução: Encontre todas as linhas que contêm a palavra “manual” no arquivo grep.txt.

Solução:

$ grep "manual" grep.txt

Exercício 2: Pesquisar Insensivelmente a Palavra “comandos” em um Arquivo

Instrução: Busque o termo “comandos” de forma insensível a maiúsculas em grep.txt.

Solução:

$ grep -i "comandos" grep.txt

Exercício 3: Contar Linhas que Contêm uma Palavra em um Arquivo

Instrução: Conte o número de linhas que contêm a palavra “página” no arquivo grep.txt.

Solução:

$ grep -c "página" grep.txt

Exercício 4: Buscar Recursivamente por um Padrão em um Diretório

Instrução: Busque o termo “my.cnf” em todos os arquivos dentro do diretório /etc/mysql/

Solução:

$ grep -r "my.cnf" /etc/mysql/

Exercício 5: Listar Apenas Nomes de Arquivos Contendo um Padrão

Instrução: Liste os nomes dos arquivos .conf em /etc que contêm a palavra “sudo”.

Solução:

$ grep -l "sudo" /etc/*.conf

Conclusão

Vimos neste tutorial a sintaxe e uso básico do comando grep no Linux, incluindo alguns exemplos de aplicação na linha de comandos e exercícios resolvidos. Trata-se de uma ferramenta muito útil para administradores de sistemas, usuários em geral e até mesmo programadores que utilizam o Linux em seu dia-a-dia.

Nos próximos artigos aprenderemos a usar outras ferramentas também muito úteis no Linux, como por exemplo os comandos sort, awk e find.

 

Sair da versão mobile