Ripgrep busquedas a toda velocidad en terminal
Cada tanto surgen aplicaciones para destronar en la linea de comandos a grep. Y de las últimas candidatas debemos citar a ripgrep, un software multiplataforma construido en lenguaje de programación Rust y con licencia libre MIT, que nos promete ir más rápido, más lejos y más fuerte, en esta nuestra particular olimpiada de búsquedas.
Ripgrep combina la facilidad de uso de The Silver Searcher (dirigida a programadores y también disponible en vuestra distribución GNU/Linux más cercana) con la velocidad bruta de grep.
Búsquedas recursivas casi al instante, combinadas con diversas opciones avanzadas, como el filtrado por tipo de archivo, uso de expresiones regulares, colores personalizados, soporte Unicode y la ignorancia de forma predeterminada en los resultados de archivos ocultos y binarios (además de aquellos que deseemos añadir al archivo .gitignore).
Hay un montón de posibilidades a explorar con ripgrep y aunque su sintaxis es similar a otras herramientas de su tipo, como siempre lo mejor es echar un vistazo a la función de ayuda del programa:
rg –help
o su manual
man rg
Su uso más básico es rg seguido del termino a buscar:
rg texto-a-buscar
Si queremos hacer la búsqueda insensible a mayúsculas y minúsculas le añadimos la opción -i:
rg -i texto-a-buscar
Puede ser que queramos buscar unicamente por tipo de archivo. En este ejemplo buscamos programas de python (py)
rg -tpy foobar
o todo lo contrario, buscar todos los archivos menos los de una clase determinada. En este caso pasamos de los de ruby (rb).
rg -Trb foobar
Instalación en Linux
Otra de las ventajas de ripgrep es que está disponible para los principales sistemas operativos (Linux, Mac y Windows). Vamos a ver como instalarlo en algunas de las distros GNU/Linux más populares:
En Arch Linux y derivadas como Antergos o Manjaro, nos lo encontramos en los repositorios oficiales:
sudo pacman -S ripgrep
Para Fedora 24 y 25:
su -c
dnf copr enable carlgeorge/ripgrep
dnf install ripgrep
Para RHEL y CentOS 7:
su -c
yum-config-manager –add-repo=https://copr.fedorainfracloud.org/coprs/carlgeorge/ripgrep/repo/epel-7/carlgeorge-ripgrep-epel-7.repo
yum install ripgrep
En gentoo:
sudo emerge ripgrep
En cualquier otra distribución si tenéis instalado Rust y su gestor de paquetes Cargo, podría funcionar:
cargo install ripgrep
Tenéis más información sobre ripgrep y sus diversos modos de funcionamiento en la web de su desarrollador, donde también encontraréis comparativas de rendimiento respecto a programas similares.