Aller au contenu
Outils medium

ripgrep : recherche de texte ultra-rapide en ligne de commande

6 min de lecture

ripgrep, dont la commande est rg, recherche du texte dans une arborescence de fichiers à une vitesse que grep n'atteint pas. Écrit en Rust, récursif par défaut et conscient de .gitignore, il est devenu l'outil de référence pour fouiller du code, des logs ou de la documentation.

Ce guide s'adresse aux développeurs et administrateurs système qui cherchent une alternative moderne à grep. Vous allez installer ripgrep, lancer vos premières recherches, maîtriser les options essentielles et comprendre comment il exploite .gitignore pour ne fouiller que ce qui compte.

  • Comprendre ce qui distingue ripgrep de grep.
  • Installer ripgrep sur Linux, macOS et Windows.
  • Lancer des recherches simples et par expression régulière.
  • Utiliser les options clés : contexte, casse, filtres par type.
  • Exploiter le respect de .gitignore et l'option --no-ignore.

ripgrep est un outil de recherche de texte en ligne de commande, créé en 2016 par Andrew Gallant (BurntSushi sur GitHub). Son objectif : combiner la vitesse d'un moteur de recherche optimisé avec la compréhension des dépôts Git. Concrètement, il retrouve une chaîne ou un motif dans des milliers de fichiers en une fraction de seconde.

Deux traits le démarquent de grep. D'abord, il est récursif par défaut : pas besoin de -r. Ensuite, il respecte .gitignore : il n'explore pas les dossiers exclus comme node_modules ou .venv, ce qui accélère encore la recherche et écarte le bruit. Il gère par ailleurs des expressions régulières modernes, y compris PCRE2.

ripgrep est disponible dans la plupart des gestionnaires de paquets. Choisissez la méthode correspondant à votre système.

Fenêtre de terminal
sudo apt update && sudo apt install ripgrep

Pour disposer de la toute dernière version, installez le paquet officiel depuis les releases GitHub :

Fenêtre de terminal
curl -LO https://github.com/BurntSushi/ripgrep/releases/download/15.1.0/ripgrep_15.1.0-1_amd64.deb
sudo apt install ./ripgrep_15.1.0-1_amd64.deb

Vérification : la commande suivante doit afficher la version installée.

Fenêtre de terminal
rg --version
# ripgrep 15.1.0 (rev af60c2de9d)

La syntaxe de base ressemble à celle de grep, en plus simple : on donne un motif et, éventuellement, un répertoire. Sans répertoire, ripgrep cherche dans le dossier courant, récursivement.

Fenêtre de terminal
rg "maFonction" monProjet/

ripgrep affiche chaque correspondance avec le nom du fichier et le numéro de ligne. Le motif est en réalité une expression régulière, ce qui autorise des recherches précises. Par exemple, pour ne trouver que les lignes commençant par un chiffre :

Fenêtre de terminal
rg '^[0-9]+' monProjet/

Pour rechercher une adresse IP dans tout un projet, un motif plus élaboré suffit :

Fenêtre de terminal
rg '\b\d{1,3}(\.\d{1,3}){3}\b' monProjet/

Quelques options transforment ripgrep en outil d'investigation. Les voici avec leur usage concret, du plus courant au plus pointu.

Afficher du contexte autour d'une correspondance, ici trois lignes avant et après, avec -C :

Fenêtre de terminal
rg -C 3 'erreur' monProjet/

Rendre la recherche insensible à la casse avec -i :

Fenêtre de terminal
rg -i 'maFonction' monProjet/

Restreindre la recherche à un type de fichier avec --type (ici Python) :

Fenêtre de terminal
rg --type py 'import' monProjet/

Exclure certains fichiers avec --glob et son préfixe ! (ici les JSON) :

Fenêtre de terminal
rg --glob '!*.json' 'recherche' monProjet/

Ne lister que les noms de fichiers correspondants, sans les extraits, avec -l :

Fenêtre de terminal
rg -l 'maFonction' monProjet/

C'est la fonctionnalité qui change tout au quotidien. Dans un dépôt git, ripgrep lit les fichiers .gitignore, .ignore et .rgignore, et écarte automatiquement les chemins qu'ils excluent. Fini de fouiller node_modules, dist ou .venv : la recherche est plus rapide et les résultats plus propres.

Fenêtre de terminal
# Dans un dépôt git, les fichiers ignorés ne sont pas parcourus
rg "token" .

Il arrive qu'on veuille tout fouiller, y compris les fichiers ignorés. L'option --no-ignore désactive ce filtrage :

Fenêtre de terminal
rg --no-ignore "token" .

grep reste universel et présent sur tout système Unix. ripgrep n'a pas vocation à le remplacer partout, mais il brille dès qu'il s'agit de fouiller un projet de code.

Critèregrepripgrep
VitesseCorrecteTrès rapide (Rust, parallélisme)
RécursivitéOption -rPar défaut
Respect de .gitignoreNonOui (dans un dépôt git)
Filtres par typeManuel--type py, --type-list
DisponibilitéPartoutÀ installer

Le bon réflexe : grep pour un one-liner rapide sur un fichier ou dans un script portable, ripgrep pour explorer une base de code.

  1. ripgrep (rg) recherche du texte très rapidement, récursivement et par défaut.
  2. Il respecte .gitignore dans un dépôt git, ce qui écarte le bruit ; --no-ignore force la recherche complète.
  3. L'installation passe par le gestionnaire de paquets, ou le .deb officiel pour la dernière version.
  4. Les options clés : -C (contexte), -i (casse), --type (type de fichier), --glob (exclusion), -l (fichiers seuls).
  5. Le motif est une regex, jusqu'au support PCRE2 pour les recherches avancées.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn