Vous pouvez utiliser grep
pour rechercher récursivement le dossier courant avec -r
paramètre, comme :
grep -r "pattern" .
Nota: -r
- Recherche récursive dans les sous-répertoires.
Pour effectuer une recherche dans des fichiers spécifiques, vous pouvez utiliser un filtre de type syntaxe de globbing comme :
grep "class foo" **/*.c
Remarque : En utilisant option de globalisation ( **
), il analyse tous les fichiers de manière récursive avec une extension ou un motif spécifique. Pour activer cette syntaxe, exécutez : shopt -s globstar
. Vous pouvez également utiliser **/*.*
pour tous les fichiers (sauf les fichiers cachés et sans extension) ou tout autre motif.
Si vous avez l'erreur que votre argument est trop long, pensez à restreindre votre recherche, ou utilisez find
à la place, une syntaxe telle que :
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Vous pouvez également utiliser ripgrep
.
Si vous travaillez sur des projets plus importants ou des fichiers volumineux, vous devez utiliser la fonction ripgrep
à la place, comme :
rg "pattern" .
Consultez la documentation, les étapes d'installation ou le code source sur le site Web de la Commission européenne. Page du projet sur GitHub .
C'est beaucoup plus rapide que n'importe quel autre outil du type GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
ou similaire, puisqu'il est construit sur le dessus de Le moteur regex de Rust qui utilise des automates finis, SIMD et des optimisations littérales agressives pour rendre la recherche très rapide.
Il prend en charge les modèles d'ignorance spécifiés dans .gitignore
de sorte qu'un seul chemin de fichier peut être comparé à plusieurs motifs globaux simultanément.
Vous pouvez utiliser les paramètres communs tels que :
-
-i
- Recherche insensible.
-
-I
- Ignorer les fichiers binaires.
-
-w
- Recherche des mots entiers (à l'inverse de la correspondance des mots partiels).
-
-n
- Montrez la ligne de votre correspondance.
-
-C
/ --context
(par exemple -C5
) - Augmente le contexte, de sorte que vous voyez le code environnant .
-
--color=auto
- Marquez le texte correspondant.
-
-H
- Affiche le nom du fichier où se trouve le texte.
-
-c
- Affiche le nombre de lignes correspondantes. Peut être combiné avec -H
.