Ripgrep : L'alternative moderne et rapide à grep

Le par Anthony Domps.

Si vous utilisez régulièrement la ligne de commande Linux pour fouiller dans votre code source, vous connaissez l'indispensable grep. Cependant, pour les projets volumineux comportant des milliers de fichiers, un nouvel outil est disponible : ripgrep (commande rg).

Qu'est-ce que ripgrep ?

Écrit en Rust, ripgrep est un outil de recherche textuelle qui combine la puissance des expressions régulières avec une vitesse d'exécution impressionnante. Contrairement à grep, il est conçu nativement pour les développeurs : il respecte les fichiers .gitignore et ignore les fichiers cachés (commençant par .) et binaires par défaut.

Installation

ripgrep n'est généralement pas installé par défaut. Voici comment l'ajouter sur les distributions courantes :

  • Debian / Ubuntu : sudo apt install ripgrep
  • Fedora : sudo dnf install ripgrep
  • Arch Linux : sudo pacman -S ripgrep

Syntaxe de base

L'un des avantages de rg est sa concision. Là où grep nécessite des options pour une recherche récursive ou l'affichage du numéro de ligne, ripgrep le fait par défaut.

# Rechercher un terme de manière récursive dans le dossier courant
rg "mon_terme"

# Rechercher une variable PHP (en échappant le $)
rg '\$maVariable'

# Rechercher sans tenir compte de la casse (Insensitive)
rg -i "terme"

Rechercher par type de fichier

C'est l'une des fonctionnalités les plus puissantes de l'outil. Vous pouvez limiter votre recherche à une extension spécifique facilement.

# Chercher uniquement dans les fichiers PHP
rg -t php "ma_fonction"

# Chercher partout sauf dans le JavaScript
rg -T js "ma_fonction"

Lister uniquement les fichiers

Si vous ne voulez pas voir les lignes correspondantes mais seulement la liste des fichiers contenant le terme, utilisez l'option -l :

rg -l "terme_recherche"

Comparatif rapide des options

Action Option grep Option ripgrep (rg)
Recherche récursive -r Par défaut
Numéros de lignes -n Par défaut
Texte brut (non regex) -F -F

Conclusion

Bien que grep reste l'outil universel présent par défaut sur tous les systèmes Linux, ripgrep est un complément idéal pour votre environnement de développement local. Sa capacité à ignorer automatiquement les dossiers inutiles en fait un gain de temps immédiat.