ripgrep (souvent abrégé en rg) est un outil moderne, rapide et puissant en ligne de commande permettant de rechercher récursivement dans vos fichiers, comme grep, mais avec plus d’efficacité et de fonctionnalités. Il est conçu pour explorer des dépôts de code tout en ignorant automatiquement les fichiers et dossiers définis dans .gitignore ou d’autres fichiers de configuration similaires. Cela rend ripgrep particulièrement performant pour les développeurs travaillant sur de grandes bases de code.
Ce tutoriel couvre :
L’installation de ripgrep sous Linux
La syntaxe de base et les commandes principales
Les cas d’usage courants et exemples
Les fonctionnalités avancées
Une comparaison avec grep et d’autres outils
Le dépannage et les bonnes pratiques
À la fin, vous saurez utiliser ripgrep efficacement.
L’installation de ripgrep est simple sur la plupart des distributions Linux. Vous pouvez l’installer via le gestionnaire de paquets ou en téléchargeant le binaire.
Mettez à jour la liste des paquets :
sudo apt update
Installez ripgrep :
sudo apt install ripgrep fzf
La syntaxe est similaire à grep, mais ripgrep offre de meilleures performances et davantage de fonctionnalités par défaut.
rg [OPTIONS] MOTIF [CHEMIN]
Où :
MOTIF est la chaîne ou l’expression régulière à rechercher.
[CHEMIN] est facultatif et indique le dossier ou fichier à analyser. S’il est omis, ripgrep cherche dans le répertoire courant.
Pour rechercher uniquement dans des fichiers .py :
rg "function" *.py
L’utilisation directe de *.py n’est pas récursive. Pour cela, utilisez --type :
rg --type py "function"
Cela garantit une recherche dans tous les fichiers Python de l’arborescence.
ripgrep prend en charge les regex :
rg '\d{4}-\d{2}-\d{2}'
Recherche des dates au format YYYY-MM-DD.
rg -i "error"
Correspond à error, Error ou ERROR.
rg --type py "import"
Par exemple node_modules :
rg "config" --glob '!node_modules/*'
ripgrep peut analyser des archives sans extraction préalable (.gzip, .xz, .lz4, .bzip2, .lzma, .zstd).
Exemple :
rg 'ERST' -z demo.gz
ripgrep permet d’afficher du contexte autour des correspondances.
-B [nombre] : lignes avant
-A [nombre] : lignes après
rg "EXT4-fs \(sda3\)" /var/log/syslog.demo -B 1 -A 2
rg "EXT4-fs \(sda3\)" /var/log/syslog -C 1
-B 1 -A 2 permet un contrôle précis
-C 2 affiche le même nombre de lignes avant et après
ripgrep est plus rapide, surtout sur de gros projets
ignore automatiquement .gitignore
grep est plus universel mais moins riche en fonctionnalités
tous deux optimisés pour le code
ripgrep est généralement plus rapide et gère mieux les glob patterns et regex
rg "search-term" --max-filesize 10M
Limite la recherche aux fichiers de moins de 10 Mo.
Créez ~/.ripgreprc :
--glob '!*.log'
--glob '!*.tmp'
Cela exclura les fichiers .log et .tmp de toutes les recherches.
rg --version
Ce guide a présenté l’installation de ripgrep, ses commandes essentielles, ses fonctionnalités avancées et sa comparaison avec d’autres outils. Grâce à sa rapidité et son efficacité, ripgrep est un excellent choix pour les développeurs souhaitant améliorer leurs capacités de recherche dans de grandes bases de code.