Busca & Regex
grep, ripgrep (rg), find, sed, e awk - o kit de ferramentas de busca de texto do Linux que desenvolvedores Python usam para buscar logs, localizar arquivos e transformar configurações "one-shot" em servidores.
Busque em todas as páginas da documentação
grep, ripgrep (rg), find, sed, e awk - o kit de ferramentas de busca de texto do Linux que desenvolvedores Python usam para buscar logs, localizar arquivos e transformar configurações "one-shot" em servidores.
rg "TaxCalculator" src/
rg -n "raise_for_status" --type py
find /var/log/myapp -name "*.log" -mtime +7
grep -E "ERROR|CRITICAL" /var/log/myapp/app.log | tail -50Quando usar isso:
# Encontra todos os TODO(FIXME) em fontes Python
rg -n "TODO|FIXME" -g "*.py" src/ tests/
# Encontra configuração referenciando host Redis antigo
rg -l "redis://legacy" --glob "!uv.lock"
# Logs: erros na última hora com ID de requisição
journalctl -u billing-api --since "1 hour ago" | rg "request_id=550e8400"
# Exclui logs rotacionados obsoletos com mais de 14 dias (primeiro em modo de teste)
find /var/log/billing-api -name "*.log.*" -mtime +14 -printO que isso demonstra:
rg reduzem o ruído-l lista apenas arquivos para planejamento de substituição em massajournalctl canalizado para rg para busca estruturadafind -print antes de -delete para segurança-r recursivo (lento em árvores grandes).| Tarefa | Ferramenta |
|---|---|
| Busca de símbolo de código | rg pattern src/ |
| Logs JSON | jq (preferido) ou rg na chave |
| Arquivo por nome | find . -name '*.py' |
| Substituição in-place | sed -i.bak com backup |
| 3ª coluna CSV | awk -F, '{print $3}' |
# Equivalente a rg para um arquivo com números de linha
grep -n "def main" src/app/cli.py
# Encontra marcadores __init__.py vazios
find src -name "__init__.py" -emptygrep -r a partir de / - Tempestade de IO e erros de permissão. Correção: sempre comece do projeto ou /var/log/app.-i.bak ou edite localmente + implante.sed incorreto corresponde a configuração multilinhas. Correção: teste em cópia; prefira rg para localizar + edição manual para arquivos críticos.grep imprime "Binary file matches". Correção: rg ou grep -I.LC_ALL=C para logs ASCII.jq para logs JSON.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Busca do IDE | Refatoração local | Logs de produção apenas via SSH |
git grep | Apenas arquivos rastreados | Arquivos gerados ou de log |
ag / ack | Ambientes legados | rg disponível |
| Script Python | Análise complexa | Linha única mais rápida no shell |
rg para velocidade e regras de ignorar; git grep ao buscar apenas snapshots commitados em uma revisão específica.
rg -i pattern ou grep -i.
rg -U modo multilinhas para padrões entre linhas - use com moderação.
mtime alteração de conteúdo do arquivo; atime acesso (frequentemente desativado em servidores por desempenho).
O sed do macOS requer extensão de backup sed -i '' - teste no SO de destino.
rg ignora automaticamente; para grep use --exclude-dir=.venv.
rg -c pattern por arquivo ou rg pattern | wc -l.
zgrep / zcat file.gz | rg pattern.
Evite find -delete em escala sem um teste de -print primeiro.
Prefira Python re no código da aplicação; regex do shell apenas para operações "one-off".
Versões da Pilha: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026