avatar

Andres Jaimes

Cómo usar ripgrep (rg) en Linux o Mac

By Andres Jaimes

- 2 minutes read - 250 words

Este artículo contiene ejemplos de uso del comando ripgrep (rg).

ripgrep es un buscador de expresiones regulares rápido y moderno que busca recursivamente texto dentro de ficheros y que respeta automáticamente los ficheros .gitignore y omite directorios ocultos y binarios por defecto. El comando no viene preinstalado en la mayoría de los sistemas operativos, pero merece la pena aprenderlo.

Ejemplos de uso

Busca “hola” en el directorio actual:

1rg "hola"

Busca “hola” en el directorio “config”:

1rg "hola" config/

Ignora mayúsculas y minúsculas:

1rg -i "hola"

Ignora mayúsculas y minúsculas, a menos que el texto a buscar incluya mayúsculas:

1# encuentra "hola", "HOLA", "Hola", "HoLa"
2rg -S "hola"
3# encuentra "Hola"
4rg -S "Hola"

Palabras completas, por ejemplo encuentra coincidencias para “ola”, pero no para “hola”:

1rg -w "ola"

Limita la búsqueda a ciertos tipos de ficheros:

1rg "hola" --type md
2rg "select * from" --type sql
3rg "hola" -g "*.md"
4rg "select * from" -g "*.sql"

Muestra números de línea:

1rg -n "hola"

Muestra los nombres de ficheros que contienen coincidencias:

1rg -l "hola"

Muestra los nombres de ficheros que no contienen coincidencias:

1rg -L "hola"

Incluye ficheros ocultos:

1rg "hola" --hidden

rg omite por defecto los ficheros y directorios listados en .gitignore. Para incluirlos:

1rg "hola" --no-ignore

Textos que abarcan múltiples líneas:

1rg -U "hola\nmundo"

Expresiones regulares:

1rg "usuario-[0-9]+"

Omitir expresiones regulares:

1rg -F "notas.txt

Uso con sed para remplazar todas las coincidencias:

1# el parámetro -i modifica el fichero
2rg -l "hola" | xargs sed -i 's/hola/adiós/g'