Vous pouvez utiliser grep
tool pour rechercher de manière récursive le dossier actuel avec -r
paramètre, comme:
grep -r "pattern" .
Remarque: -r
- Recherchez de manière récursive les sous-répertoires.
Pour effectuer une recherche dans des fichiers spécifiques, vous pouvez utiliser une syntaxe globale telle que:
grep "class foo" **/*.c
Remarque: En utilisant l' option globbing ( **
), 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 estimez que votre argument est trop long, envisagez de préciser votre recherche ou utilisez find
plutôt la syntaxe suivante:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Alternativement utiliser ripgrep
.
Si vous travaillez sur des projets plus volumineux ou de gros fichiers, utilisez ripgrep
plutôt:
rg "pattern" .
Consultez la documentation, les étapes d'installation ou le code source sur la page du projet GitHub .
Il est beaucoup plus rapide que tout autre outil comme GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
ou similaire, puisqu'il est construit sur le dessus du moteur de regex de rouille qui utilise des automates finis, SIMD et optimisations littérales agressives pour faire une recherche très rapide.
Il prend en charge les modèles ignorer spécifiés dans les .gitignore
fichiers, donc un seul chemin de fichier peut être en correspondance avec plusieurs modèles de glob simultanément.
Vous pouvez utiliser les paramètres communs tels que:
-i
- Recherche insensible.
-I
- Ignorer les fichiers binaires.
-w
- Rechercher les mots entiers (par opposition à la correspondance partielle des mots).
-n
- Montre la ligne de ton match.
-C
/ --context
(eg -C5
) - Augmente le contexte pour que vous voyiez le code qui l'entoure.
--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
.