jq, fzf e ripgrep sao tres ferramentas de terminal que mudaram a forma como trabalho com arquivos e dados. Cada uma resolve um problema especifico e juntas formam um trio poderoso.
Primeiro, ripgrep (rg). Ele substitui o grep tradicional com uma busca muito mais rapida e com sintaxe mais amigavel:
rg "funcao main" src/
rg "TODO|FIXME" --type py
rg "import" -l src/ # so nomes de arquivo
rg "case class" --ignore-case
Instale no Ubuntu ou WSL:
sudo apt install ripgrep
No macOS:
brew install ripgrep
O ripgrep respeita .gitignore por padrao. Nao precisa ficar excluindo node_modules ou target manualmente.
Agora fzf. E um fuzzy finder que deixa voce buscar e selecionar qualquer coisa no terminal de forma interativa:
history | fzf # busca em comandos recentes
Ctrl+R no terminal ja usa fzf se configurado
Ctrl+T para buscar arquivos
Instale:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
Depois de instalado, aperte Ctrl+R no terminal. Voce digita parte de um comando antigo e o fzf filtra e seleciona.
Combine fzf com ripgrep para buscar arquivos de forma inteligente:
rg --files | fzf
Para abrir um arquivo qualquer do projeto:
vim $(rg --files | fzf)
Ou com fd (outra ferramenta rapida para listar arquivos):
sudo apt install fd-find
vim $(fd . | fzf)
Agora jq. E um processador de JSON que roda no terminal. Perfeito para trabalhar com APIs:
curl https://api.github.com/repos/user/repo | jq '.stargazers_count'
curl https://api.github.com/repos/user/repo | jq '.name, .description'
Para extrair dados de uma lista:
curl https://api.github.com/users/octocat/repos | jq '.[] | .name'
Filtrar por condicao:
curl https://api.github.com/users/octocat/repos | jq '.[] | select(.language == "Python") | .name'
Formatar saida:
curl https://api.github.com/users/octocat/repos | jq '.[] | {nome: .name, estrelas: .stargazers_count}'
Instale:
sudo apt install jq
# ou
brew install jq
Juntando os tres. Aqui esta um exemplo pratico:
rg --files | fzf --preview 'bat --color=always {}'
Isso lista todos os arquivos do projeto com ripgrep, filtra interativamente com fzf e mostra uma pre-visualizacao com bat (outro substituto do cat com syntax highlight).
Para buscar dentro de logs JSON:
cat arquivo.log | jq 'select(.level == "ERROR") | .message' | fzf
Essas tres ferramentas sao instalacao obrigatoria em qualquer maquina que voce use para desenvolver.
That's all for now.
Thanks for reading!
Top comments (0)