Busca Eficiente no Terminal: Localizando Textos e Padronizações com grep
O utilitário grep é a ferramenta padrão em sistemas Linux/Unix para pesquisar padrões de texto e expressões regulares dentro de arquivos ou fluxos de dados. Ele resolve o problema de varrer rapidamente logs extensos e arquivos de código-fonte sem a necessidade de abri-los em um editor visual. A seguir, veja como aplicar as opções mais úteis do grep para buscas simples, recursivas e case-insensitive.
Bash
#!/bin/bash
# Exemplo prático de buscas de texto em arquivos usando grep
# Criando um arquivo de teste
cat << 'EOF' > servidor.log
2026-10-23 10:15:30 [INFO] Usuario admin logado.
2026-10-23 10:16:05 [ERROR] Falha na conexao com o banco de dados.
2026-10-23 10:17:12 [warning] Espaco em disco reduzido.
2026-10-23 10:18:00 [ERROR] Conexao recusada na porta 5432.
EOF
# 1. Busca case-insensitive (-i) exibindo o número da linha (-n)
grep -in "error" servidor.log
# 2. Busca recursiva (-r) em um diretório filtrando por extensão de arquivo
# grep -rn --include="*.log" "conexao" /var/log/
# 3. Contando a quantidade de ocorrências encontradas (-c)
TOTAL=$(grep -ic "error" servidor.log)
echo "Ocorrências de 'error': $TOTAL"
Exemplo de uso e saída no terminal:
Bash
# Executando a busca com destaque colorido nas ocorrências
grep --color=auto -in "error" servidor.log
# Saída esperada:
# 2:2026-10-23 10:16:05 [ERROR] Falha na conexao com o banco de dados.
# 4:2026-10-23 10:18:00 [ERROR] Conexao recusada na porta 5432.
Pontos-chave
- Parâmetro
-i(Case-Insensitive): Ignora a diferença entre letras maiúsculas e minúsculas durante o filtro de busca. - Parâmetro
-rou-R(Recursivo): Realiza a busca em todos os arquivos contidos no diretório atual e seus subdiretórios;-Rsegue links simbólicos. - Parâmetros
-ne-w: O-nexibe o número exato da linha correspondente, enquanto o-wforça a busca pela palavra exata (evita casar “err” com “error”). - Inversão de Seleção (
-v): A opção-vexibe todas as linhas que não contêm o padrão especificado, útil para limpar linhas em branco ou comentários (grep -v "^#"). - Filtros de Escopo (
--include/--exclude): Permite restringir a varredura a extensões específicas ou ignorar diretórios pesados comonode_modules(--exclude-dir).
