Fundamentos do Grep
Sintaxe Básica
🎯 Busca Simples
grep "palavra" arquivo.txt # Busca básica
grep "erro" *.log # Busca em múltiplos arquivos
grep "padrão" arquivo1 arquivo2 # Busca em arquivos específicos
cat arquivo.txt | grep "texto" # Busca via pipe
Opções Essenciais
🛠️ Flags Comuns
grep -i "TEXTO" # Ignora case
grep -v "excluir" # Inverte seleção
grep -n "linha" # Mostra número da linha
grep -c "contar" # Conta ocorrências
grep -w "palavra" # Palavra exata
📂 Busca em Diretórios
grep -r "texto" . # Busca recursiva
grep -R "config" /etc # Segue symlinks
grep -l "padrão" *.txt # Lista arquivos
grep -L "ausente" *.conf # Arquivos sem match
Contexto e Formatação
👀 Exibindo Contexto
grep -A 2 "erro" # 2 linhas após
grep -B 3 "início" # 3 linhas antes
grep -C 1 "meio" # 1 linha antes e depois
🎨 Formatação da Saída
grep --color "destaque" # Colorir matches
grep -h "sem-arquivo" # Omite nome do arquivo
grep -H "com-arquivo" # Força nome do arquivo
Padrões Básicos
🎨 Caracteres Especiais
grep "^início" # Começa com
grep "fim$" # Termina com
grep "^$" # Linhas vazias
grep "." # Qualquer caractere
🎲 Quantificadores
grep "ca*t" # 'ct', 'cat', 'caat'...
grep "ca\?" # 'c', 'ca'
grep "ca\+" # 'ca', 'caa'...
Exemplos Práticos
📊 Análise de Logs
# Encontra erros em logs
grep "ERROR" /var/log/*.log
# Busca IPs em access.log
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" access.log
# Encontra requisições POST
grep -i "POST" access.log
🔧 Manutenção de Sistema
# Busca processos
ps aux | grep "nginx"
# Encontra configurações
grep -r "DocumentRoot" /etc/apache2/
# Busca usuários
grep "bash$" /etc/passwd
Exercícios Práticos
🎯 Missão 1: Análise de Log
# Objetivos:
# 1. Encontre todas as linhas com "ERROR"
# 2. Mostre 2 linhas de contexto
# 3. Salve resultado em erro.log
grep -C 2 "ERROR" app.log > erro.log
🎯 Missão 2: Busca Avançada
# Objetivos:
# 1. Busque recursivamente por "TODO"
# 2. Apenas em arquivos .py
# 3. Ignore case
find . -name "*.py" -exec grep -i "TODO" {} \;
Dicas de Performance
⚡ Otimizações
Use
grep -Fpara strings fixasEvite recursão desnecessária
Combine com
findpara maior controleUse
--excludee--includepara filtrar
🚫 Armadilhas Comuns
Esquecimento de aspas
Uso incorreto de regex
Recursão em diretórios grandes
Ignorar case quando necessário
Próximos Passos
GREP MASTERY
[🔍🔍🔍🔍🔍] 100%
STATUS: PADRÕES DOMINADOS
PRÓXIMO: REGEX AVANÇADO
14 abril 2025