Vous pouvez utiliser l'outil grep
pour rechercher récursivement le dossier actuel avec le paramètre -r
, comme:
grep -r "pattern" .
Remarque: -r
- Recherche récursive dans les sous-répertoires.
Pour rechercher dans des fichiers spécifiques, vous pouvez utiliser une syntaxe de regroupement , telle que:
grep "class foo" **/*.c
Remarque: En utilisant l’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 (à l'exclusion des fichiers cachés et sans extension) ou tout autre modèle.
Si vous constatez que votre argument est trop long, envisagez de limiter votre recherche ou utilisez plutôt la syntaxe find
telle que:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Vous pouvez également utiliser ripgrep
.
Si vous travaillez sur de plus gros projets ou de gros fichiers, utilisez plutôt ripgrep
, par exemple:
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 tel que GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
ou similaire, car il est construit sur la regex de Rust moteur qui utilise des automates finis, SIMD et optimisations littérales agressives pour rendre la recherche très rapide.
Il prend en charge les motifs d’ignorance spécifiés dans les fichiers .gitignore
, de sorte qu’un chemin de fichier unique peut être comparé à plusieurs modèles de globes simultanément.
Vous pouvez utiliser les paramètres communs tels que:
-
-i
- Recherche insensible.
-
-I
- Ignore les fichiers binaires.
-
-w
- Recherchez les mots entiers (à l'opposé de la correspondance de mots partielle).
-
-n
- Affiche la ligne de votre correspondance.
-
-C
/ --context
(par exemple -C5
) - Augmente le contexte, vous voyez donc le code environnant.
-
--color=auto
- Marque le texte correspondant.
-
-H
- Affiche le nom du fichier où le texte est trouvé.
-
-c
- Affiche le nombre de lignes correspondantes. Peut être combiné avec -H
.