- Ferramenta de busca de padrões em arquivos poderosa, muito rápida, amigável e compatível com
grep
- Acelera a busca no sistema de arquivos com um novo indexador de arquivos e permite pesquisar pela linha de comando com uma TUI (interface de usuário baseada em texto) ou com opções compatíveis com
grep
- Suporta comandos de padrão semelhantes à busca do Google
- Suporta busca fuzzy (expande o reconhecimento para identificar palavras com um ou dois caracteres incorretos no padrão ou obter resultados de busca otimizados)
- Pode ser instalado em diversos sistemas, como macOS, Windows, Alpine, Android Termux, Arch, CentOS, Debian, Fedora, FreeBSD, NetBSD, OpenSUSE e RHEL
- Pode pesquisar e fazer hexdump de vários formatos de arquivo, incluindo arquivos zip/tar/pax/cpio aninhados, arquivos comprimidos, arquivos binários, PDF, doc, docx e mais
Comandos
- É possível usar os comandos
ug e ugrep para pesquisar padrões em arquivos, e ug usa o arquivo de configuração .ugrep localizado no diretório de trabalho ou no diretório home.
ug --save-config OPTIONS salva um novo arquivo .ugrep no diretório de trabalho usando a configuração .ugrep atual.
ugrep não usa o arquivo de configuração .ugrep e funciona melhor em scripts de shell.
- Fornece vários exemplos de uso para correspondência de padrões em arquivos e diretórios, salvamento de arquivos de configuração, busca no Google e mais.
Opções
- O ugrep é compatível com GNU grep e oferece suporte às opções de linha de comando do GNU grep.
- Oferece várias opções para lidar com lista de arquivos, exibição de correspondências, informações de correspondência, contexto de correspondência e mais.
- Inclui recursos como modos de correspondência de padrões, TUI interativa, busca de arquivos e busca fuzzy.
Arquivos compactados e arquivos de arquivo
- É possível pesquisar em arquivos, tarballs e arquivos comprimidos usando a opção
-z.
- Com várias opções, oferece suporte à busca dentro de arquivos compactados em níveis específicos, ignorar arquivos binários e buscar com base em tipos de arquivo e padrões glob.
Arquivos binários e dispositivos
- Inclui opções para ignorar arquivos binários ou gerar hexdump, além de opções para pesquisar dispositivos especiais.
Excluir e incluir
- Oferece opções para controlar ignorar arquivos binários, seguir links simbólicos, incluir arquivos ocultos e pesquisar tipos de arquivo específicos e padrões glob.
Saída formatada
- Suporta vários formatos de saída, como CSV, JSON, XML e formatos personalizados.
Recursos visuais, mais ou menos
- Inclui opções para deixar a saída mais agradável visualmente, como cores, hyperlinks, pager, tags e substituição de correspondências.
Obtendo ajuda
- É possível obter a ajuda necessária com a opção
--help, que oferece ajuda detalhada sobre várias opções, padrões, globs e filtros.
Opinião do GN⁺
- O ugrep oferece recursos muito mais poderosos do que as ferramentas
grep tradicionais e melhora a experiência de busca do usuário com diversos formatos de arquivo e opções de correspondência de padrões.
- Com uma TUI amigável e arquivos de configuração, é possível montar um ambiente de busca personalizado.
- Esta ferramenta é muito útil para desenvolvedores de software e administradores de sistemas ao explorar e analisar com eficiência grandes bases de código ou sistemas de arquivos.
2 comentários
Como eu já uso bastante o ripgrep, fui pesquisar quais seriam as diferenças e acabei encontrando este post.
https://reddit.com/r/rust/…
Já faz alguns anos, mas no ugrep dizem que o ugrep é mais rápido que o ripgrep, enquanto no ripgrep dizem que o ripgrep é mais rápido que o ugrep — então, afinal, qual dos dois está certo? Os comentários são realmente impressionantes.
Refizeram os testes que o ugrep dizia ter feito e resumiram os resultados.
Resumindo bem por alto, parece que na maioria dos casos o ripgrep realmente é mais rápido, e que o pessoal do ugrep conduziu os testes de um jeito que os favorecia. (Ou seja, mesmo repetindo os testes usados pelo ugrep, em muitos casos o ripgrep apresentou resultados melhores; e fica a suspeita de que o lado do ugrep reduziu o tamanho dos testes para aumentar a variação causada por ruído e assim selecionar apenas os resultados favoráveis.)
Comentários no Hacker News
Há uma thread comparando o desempenho com o ripgrep (ripgrep). Também são apresentados alguns TUIs baseados em ripgrep.
Expressa o desejo por uma ferramenta que ofereça pré-visualização em tempo real de pipelines de shell e se integre ao shell. Algo parecido foi implementado no zsh usando o widget zle
accept-and-hold, mas seria mais desejável ver os resultados em tempo real.Interesse no suporte a um indexador de n-gram. O ripgrep também planejou esse recurso, mas ainda não o implementou. Foi usado o csearch para codebases grandes, mas há várias limitações. O novo indexador leva 86 segundos para indexar a árvore do kernel Linux, sendo muito mais lento que a ferramenta cindex do csearch.
Aviso importante sobre compatibilidade: na prática não é compatível, e em poucos segundos foram encontradas opções que fazem algo completamente diferente da versão GNU.
Vale também dar uma olhada no grab, feito por Sebastian Krahmer.
Levanta a dúvida sobre por que novas ferramentas não seguem o padrão XDG. Seguir o padrão XDG pode evitar que o diretório home fique bagunçado com inúmeros arquivos de configuração.
Avaliação positiva do Ugrep disponível em repositórios baseados em Debian. Em especial, o recurso de fuzzy match, que tolera erros de digitação ou diferenças de 1 a 2 caracteres, é útil.
Expressa satisfação com a capacidade de buscar vários termos dentro de arquivos (o chamado "googlar arquivos"). Antes tinha escrito um script manualmente, mas esse recurso tornou isso desnecessário. Também pretende dar uma olhada no TUI. Vinha usando ripgrep, mas vai comparar se esta ferramenta pode substituí-lo.