Comparativa de funciones entre ack, ag, git-grep, GNU grep y ripgrep

Fuentes: Feature comparison of ack, ag, git-grep, GNU grep and ripgrep

El proyecto beyondgrep mantiene una tabla comparativa que enfrenta cinco utilidades de búsqueda de texto orientadas a desarrolladores: ack (escrita en Perl, bajo Artistic License 2.0), The Silver Searcher o ag (en C, Apache 2.0), git-grep (en C, GPL 2, integrado en Git), GNU grep (en C, GPL 3) y ripgrep o rg (en Rust, bajo MIT/Unlicense). El cuadro, organizado en bloques como búsqueda, expresiones regulares, salida, presentación y filtrado de archivos, permite identificar de un vistazo qué herramienta soporta cada capacidad. La comparativa aclara que ripgrep suele ser la más rápida, aunque no necesariamente la más completa para todos los casos.

Entre los rasgos diferenciales, git-grep es la única que permite buscar en el historial de Git y la única que admite patrones múltiples combinados con expresiones booleanas; además, muestra el nombre de la función donde aparece cada coincidencia. GNU grep destaca por permitir seguir enlaces simbólicos al recorrer subdirectorios, tratar archivos como binarios y trabajar con expresiones regulares básicas o extendidas. ack introduce peculiaridades como subrayar coincidencias cuando no hay color, agrupar resultados por archivo, imprimir solo líneas concretas por número y resaltar la proximidad entre coincidencias (en ack 3). ag y ripgrep comparten la búsqueda en archivos gzip, el paralelismo con hilos, el soporte de .gitignore/.ignore y el respeto de límites de profundidad.

La tabla también recoge detalles de configuración: ack admite archivos a nivel de sistema, usuario y proyecto; ripgrep utiliza la variable de entorno RIPGREP_CONFIG_PATH; git-grep comparte ese modelo multinivel, mientras que ag y GNU grep no documentan archivo de configuración. La página invita a reutilizar este formato para otros proyectos y a enviar correcciones mediante issues en el repositorio de GitHub de beyondgrep.