- Herramienta de búsqueda de patrones en archivos que es potente, muy rápida, fácil de usar y compatible con
grep
- Acelera la búsqueda en el sistema de archivos con un nuevo indexador de archivos, y permite buscar desde una TUI (interfaz de usuario basada en texto) o desde la línea de comandos con opciones compatibles con
grep
- Soporta comandos de patrones similares a la búsqueda de Google
- Soporta búsqueda difusa (amplía el reconocimiento para detectar palabras con uno o hasta dos caracteres incorrectos en el patrón, u obtiene resultados de búsqueda óptimos)
- Puede instalarse en una gran variedad de sistemas como MacOS, Windows, Alpine, Android Termux, Arch, CentOS, Debian, Fedora, FreeBSD, NetBSD, OpenSUSE y RHEL
- Puede buscar y hacer hexdump de formatos de archivo variados, incluyendo archivos zip/tar/pax/cpio anidados, archivos comprimidos, archivos binarios, PDF, doc, docx y más
Comandos
- Puedes usar los comandos
ug y ugrep para buscar patrones en archivos, y ug usa un archivo de configuración .ugrep ubicado en el directorio de trabajo o en el directorio personal.
ug --save-config OPTIONS guarda un nuevo archivo .ugrep en el directorio de trabajo usando la configuración actual de .ugrep.
ugrep no usa el archivo de configuración .ugrep y funciona mejor en scripts de shell.
- Se ofrecen varios ejemplos de uso para coincidencia de patrones en archivos y directorios, guardar archivos de configuración, búsquedas tipo Google y más.
Opciones
ugrep es compatible con GNU grep y soporta las opciones de línea de comandos de GNU grep.
- Ofrece diversas opciones para manejar listas de archivos, visualización de coincidencias, información de coincidencias, contexto de coincidencias y más.
- Incluye funciones como modos de coincidencia de patrones, TUI interactiva, búsqueda de archivos y búsqueda difusa.
Archivos comprimidos y archivos de archivo
- Puedes buscar dentro de archivos de archivo, tarballs y archivos comprimidos con la opción
-z.
- Mediante varias opciones, soporta búsqueda dentro de archivos de archivo a cierto nivel, ignorar archivos binarios y buscar según tipo de archivo y patrones glob.
Archivos binarios y dispositivos
- Incluye opciones para ignorar archivos binarios o hacerles hexdump, así como opciones para buscar en dispositivos especiales.
Exclusión e inclusión
- Ofrece opciones para controlar el ignorar archivos binarios, seguir enlaces simbólicos, incluir archivos ocultos y buscar tipos de archivo específicos y patrones glob.
Salida con formato
- Soporta varios formatos de salida como CSV, JSON, XML y formatos personalizados.
Extras visuales, más o menos
- Incluye opciones para hacer la salida más agradable de ver, como colores, hipervínculos, paginador, etiquetas y reemplazo de coincidencias.
Obtener ayuda
- Puedes obtener la ayuda que necesites con la opción
--help, que ofrece ayuda detallada sobre diversas opciones, patrones, globs y filtros.
Opinión de GN⁺
ugrep ofrece funciones mucho más potentes que las herramientas grep tradicionales, y mejora la experiencia de búsqueda del usuario mediante diversos formatos de archivo y opciones de coincidencia de patrones.
- Su TUI fácil de usar y sus archivos de configuración permiten crear un entorno de búsqueda personalizado.
- Esta herramienta es muy útil para que desarrolladores de software o administradores de sistemas exploren y analicen de forma efectiva grandes bases de código o sistemas de archivos.
2 comentarios
Como uso mucho
ripgrep, me puse a investigar qué diferencias había y me encontré con esta publicación.https://reddit.com/r/rust/…
Aunque es una historia de hace algunos años, en
ugrepdicen queugrepes más rápido queripgrep, y enripgrepdicen queripgrepes más rápido queugrep, así que la pregunta es cuál de las dos versiones es correcta. Y los comentarios son realmente impresionantes.Volvieron a ejecutar las pruebas que, según dicen, hizo
ugrepy resumieron los resultados.En resumen, parece que en la mayoría de los casos
ripgrepsí es más rápido, y que del lado deugrephicieron las pruebas de una manera que les favorecía. (Es decir, que incluso al probar con los mismos escenarios que usóugrep, en muchos casosripgrepobtiene mejores resultados, y queda la sospecha de que del lado deugrepredujeron el tamaño de las pruebas para aumentar la variación por ruido y así quedarse solo con los resultados que les convenían.)Comentarios de Hacker News
Hay un hilo sobre el rendimiento y la comparación con ripgrep(ripgrep). También se presentan varias interfaces de usuario de texto (TUI) basadas en ripgrep.
Expresa el deseo de una herramienta que se integre con el shell y ofrezca una vista previa en tiempo real de los pipelines del shell. En zsh implementó una función similar usando el widget
accept-and-holdde zle, pero sería más deseable ver los resultados en tiempo real.Expresa interés en el soporte para un indexador de n-gramas. ripgrep también tenía planeada esta función, pero todavía no la implementa. Ha usado csearch para codebases grandes, pero tiene varias limitaciones. El nuevo indexador tarda 86 segundos en indexar el árbol del kernel de Linux, así que es mucho más lento que la herramienta cindex de csearch.
Una advertencia importante sobre la compatibilidad: en realidad no es compatible, y en pocos segundos encontró opciones que hacen cosas completamente distintas a la versión de GNU.
También vale la pena revisar grab, creado por Sebastian Krahmer.
Se cuestiona por qué las herramientas nuevas no siguen el estándar XDG. Seguirlo puede evitar que el directorio personal termine lleno de archivos de configuración.
Evaluación positiva de Ugrep, disponible en repositorios basados en Debian. En particular, resulta útil la función de coincidencia difusa que tolera errores tipográficos o diferencias de 1-2 letras.
Expresa satisfacción con la función para buscar varios términos dentro de archivos (lo que llama "googlear archivos"). Antes había escrito un script para eso, pero con esta función ya no hace falta. También planea revisar la TUI. Ha usado ripgrep, pero va a comparar si esta herramienta puede reemplazarlo.