Busca & Regex
Buscas rápidas mantêm bases de código Rust navegáveis. ripgrep (rg) respeita .gitignore, fd encontra caminhos, e sed/awk manipulam logs de build e exportações CSV.
Busque em todas as páginas da documentação
Buscas rápidas mantêm bases de código Rust navegáveis. ripgrep (rg) respeita .gitignore, fd encontra caminhos, e sed/awk manipulam logs de build e exportações CSV.
rg "AppError" src/
rg -t rust "unwrap\(" --glob '!tests/**'
fd '\.rs$' src/
rg -l "sqlx::query" | xargs wc -lQuando usar isso:
unwrap ou unsafe em caminhos de produção# Encontrar variantes de enum e blocos impl
rg "enum AppError" -A 20 src/
# Arquivos importando axum mas não no módulo router
rg -l "use axum" src/ | rg -v routes
# Contar linhas por módulo
fd . src -e rs | xargs wc -l | sort -n
# Transformar trecho de log de CI
sed -n '/error\[E/,+3p' ci.logO que isso demonstra:
-t rust filtra tipos de arquivo--glob exclui árvores de testerg, fd e wc| Flag | Uso |
|---|---|
-F | String fixa (sem regex) |
-w | Palavra inteira |
-C 3 | Linhas de contexto |
--stats | Contagens de correspondência e tempo |
-z | Busca em .tar etc. |
A busca na CLI é scriptável em CI (ex: falhar se todo!() em src/ fora de testes).
grep -r inclui target/ - lento e barulhento. Correção: use rg ou --exclude-dir=target.. corresponde a qualquer caractere. Correção: rg -F para strings literais.-i quando apropriado.rg pula binários por padrão.perl -pi.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
git grep | Apenas arquivos rastreados | Precisa de velocidade ciente de ignore |
ast-grep | Busca estrutural em Rust | Busca de texto simples |
| busca de símbolos rust-analyzer | Navegação ciente de tipos | Scripting de CI |
rg é mais rápido e mais mantido; padrão para equipes Rust.
Execute a partir da raiz do workspace; rg busca todos os crates, a menos que seja escopo com -g.
Versões de Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, e Polars 0.46+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026