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:

rg "hola"

Busca “hola” en el directorio “config”:

rg "hola" config/

Ignora mayúsculas y minúsculas:

rg -i "hola"

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

# encuentra "hola", "HOLA", "Hola", "HoLa"
rg -S "hola"
# encuentra "Hola"
rg -S "Hola"

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

rg -w "ola"

Limita la búsqueda a ciertos tipos de ficheros:

rg "hola" --type md
rg "select * from" --type sql
rg "hola" -g "*.md"
rg "select * from" -g "*.sql"

Muestra números de línea:

rg -n "hola"

Muestra los nombres de ficheros que contienen coincidencias:

rg -l "hola"

Muestra los nombres de ficheros que no contienen coincidencias:

rg -L "hola"

Incluye ficheros ocultos:

rg "hola" --hidden

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

rg "hola" --no-ignore

Textos que abarcan múltiples líneas:

rg -U "hola\nmundo"

Expresiones regulares:

rg "usuario-[0-9]+"

Omitir expresiones regulares:

rg -F "notas.txt

Uso con sed para remplazar todas las coincidencias:

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