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.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- 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
.gitignoreet l'option--no-ignore.
Qu'est-ce que ripgrep ?
Section intitulée « Qu'est-ce que ripgrep ? »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.
Installer ripgrep
Section intitulée « Installer ripgrep »ripgrep est disponible dans la plupart des gestionnaires de paquets. Choisissez la méthode correspondant à votre système.
sudo apt update && sudo apt install ripgrepPour disposer de la toute dernière version, installez le paquet officiel depuis les releases GitHub :
curl -LO https://github.com/BurntSushi/ripgrep/releases/download/15.1.0/ripgrep_15.1.0-1_amd64.debsudo apt install ./ripgrep_15.1.0-1_amd64.debsudo dnf install ripgrepbrew install ripgrepwinget install BurntSushi.ripgrep.MSVCVérification : la commande suivante doit afficher la version installée.
rg --version# ripgrep 15.1.0 (rev af60c2de9d)Vos premières recherches
Section intitulée « Vos premières recherches »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.
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 :
rg '^[0-9]+' monProjet/Pour rechercher une adresse IP dans tout un projet, un motif plus élaboré suffit :
rg '\b\d{1,3}(\.\d{1,3}){3}\b' monProjet/Les options essentielles
Section intitulée « Les options essentielles »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 :
rg -C 3 'erreur' monProjet/Rendre la recherche insensible à la casse avec -i :
rg -i 'maFonction' monProjet/Restreindre la recherche à un type de fichier avec --type (ici Python) :
rg --type py 'import' monProjet/Exclure certains fichiers avec --glob et son préfixe ! (ici les JSON) :
rg --glob '!*.json' 'recherche' monProjet/Ne lister que les noms de fichiers correspondants, sans les extraits, avec -l :
rg -l 'maFonction' monProjet/Le respect de .gitignore
Section intitulée « Le respect de .gitignore »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.
# Dans un dépôt git, les fichiers ignorés ne sont pas parcourusrg "token" .Il arrive qu'on veuille tout fouiller, y compris les fichiers ignorés. L'option --no-ignore désactive ce filtrage :
rg --no-ignore "token" .ripgrep face à grep
Section intitulée « ripgrep face à grep »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ère | grep | ripgrep |
|---|---|---|
| Vitesse | Correcte | Très rapide (Rust, parallélisme) |
| Récursivité | Option -r | Par défaut |
Respect de .gitignore | Non | Oui (dans un dépôt git) |
| Filtres par type | Manuel | --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.
Questions fréquentes
Section intitulée « Questions fréquentes »rg) est un outil de recherche de texte en ligne de commande, écrit en Rust par Andrew Gallant. Très rapide, il respecte automatiquement les fichiers .gitignore et supporte les expressions régulières avancées, ce qui en fait une alternative moderne à grep.grep sur les gros dépôts, récursif par défaut, et il ignore automatiquement les fichiers listés dans .gitignore. grep reste universel et présent sur tout système Unix ; ripgrep s'installe, mais offre une bien meilleure expérience pour fouiller du code.apt install ripgrep ; sur Fedora, dnf install ripgrep ; sur macOS, brew install ripgrep. Pour la toute dernière version, on télécharge le paquet .deb officiel depuis les releases GitHub. La commande s'appelle ensuite rg..gitignore, .ignore et .rgignore, ce qui accélère la recherche. Pour forcer la recherche dans les fichiers ignorés, on utilise l'option --no-ignore.À retenir
Section intitulée « À retenir »- ripgrep (
rg) recherche du texte très rapidement, récursivement et par défaut. - Il respecte
.gitignoredans un dépôt git, ce qui écarte le bruit ;--no-ignoreforce la recherche complète. - L'installation passe par le gestionnaire de paquets, ou le
.debofficiel pour la dernière version. - Les options clés :
-C(contexte),-i(casse),--type(type de fichier),--glob(exclusion),-l(fichiers seuls). - Le motif est une regex, jusqu'au support PCRE2 pour les recherches avancées.