Técnicas de búsqueda más rápidas que Ripgrep, grep, ag, Git grep, ucg, pt y sift (2016)
(blog.burntsushi.net)Resumen: introducción a la nueva herramienta de búsqueda de línea de comandos ripgrep
ripgrepes una nueva herramienta de búsqueda de línea de comandos que combina la facilidad de uso de The Silver Searcher con el rendimiento de GNU grep.- Ofrece binarios para Linux, Mac y Windows, y está escrita en Rust.
- Destaca por su rendimiento y precisión tanto en la búsqueda de archivos individuales como en directorios grandes.
- Tiene un soporte excelente para Unicode y, por lo general, es más rápida que las herramientas que usan memory mapping.
Introducción a ripgrep
Ventajas
- Es más rápida que otras herramientas de búsqueda y no busca en archivos ignorados por
.gitignore. - Ofrece funciones para buscar solo ciertos tipos de archivo o excluirlos.
- Soporta muchas funciones de
grepy siempre tiene soporte para Unicode. - Puede usar opcionalmente el motor de expresiones regulares PCRE2.
- Soporta varias codificaciones de texto y la búsqueda en archivos comprimidos.
- Soporta filtros arbitrarios de preprocesamiento de entrada.
Opiniones en contra
- No cumple con el estándar POSIX y no es tan universal como
grep. - Puede que no tenga ciertas funciones o errores presentes en otras herramientas.
- En algunos casos límite de rendimiento, ripgrep puede ser más lenta que otras herramientas.
Instalación
- El nombre del binario de
ripgrepesrgy se puede instalar en varias plataformas. - Se ofrecen métodos de instalación para Homebrew, Archlinux y programadores de Rust.
- También es posible compilarla directamente desde el código fuente.
Recorrido rápido
- El uso de
ripgrepdesde la línea de comandos no es muy distinto al de otras herramientas similares. - Soporta automáticamente salida en terminal, colores y numeración de líneas.
- Se puede buscar usando varias opciones y patrones.
Estructura de ripgrep
Contexto
- Explica las diferencias y similitudes entre
grepy las herramientas descendientes deack. ripgrepcombina la capacidad degreppara buscar en archivos grandes con la configuración predeterminada de búsqueda "inteligente" deack.
Preparación de la búsqueda de archivos
- Es importante usar un iterador rápido de directorios y el filtrado de rutas de archivos.
- Aplicar rápidamente las reglas de los archivos
.gitignoreafecta el rendimiento.
Búsqueda
- Son importantes un motor rápido de expresiones regulares y la optimización de literales.
- Busca en grandes búferes de una sola vez, en lugar de buscar línea por línea o procesar archivos completos de otra manera.
Salida
- Escribe los resultados de búsqueda en un búfer de memoria y luego los serializa hacia
stdout.
Metodología
Panorama general
- Se enfoca en el problema que el usuario intenta resolver y busca hacer benchmarks justos.
- Compara varias herramientas considerando las diferencias en el comportamiento predeterminado de cada una.
Opinión de GN⁺
Lo más importante de este texto es que explica en detalle qué ventajas tiene ripgrep frente a las herramientas de búsqueda existentes. En particular, su alto rendimiento, soporte para Unicode y compatibilidad con varios formatos de archivo y codificaciones pueden ser razones atractivas para los usuarios. Este texto resulta interesante porque ayuda a entender en qué se diferencia una herramienta nueva de las ya existentes y qué impacto podrían tener esas diferencias para los usuarios reales.
1 comentarios
Comentarios de Hacker News
project.elde Emacs y el paquete dumb-jump. dumb-jump limita automáticamente la búsqueda al tipo de archivo actual dentro de un directorio de proyecto específico, y también soporta otra herramienta rápida llamada ag..gitignore.