Comment utiliser la commande Grep récursive pour rechercher dans le répertoire
"Grep" est une commande très utile de Bash pour rechercher le contenu d'un fichier. Le motif d'expression régulière peut être utilisé avec la commande "grep" pour rechercher un texte spécifique dans un fichier. La commande "grep" normale est utilisée pour rechercher le contenu d'un seul fichier mais parfois, il est nécessaire de rechercher le contenu dans plusieurs fichiers qui sont stockés dans un dossier. La commande "grep" récursive est utilisée pour rechercher le contenu dans un répertoire de plusieurs fichiers. Les méthodes d'utilisation de "grep" récursive dans Bash sont présentées dans ce tutoriel.
Syntax de Grep Récursif :
grep -r <pattern> <directory>Ici, l'option -r est utilisée avec la commande « grep » pour effectuer une recherche récursive. Le
Exemple 1 : Utilisation simple de “Grep”
Le <modèle> de la commande “grep ” peut être une chaîne simple ou un modèle d'expression régulière. Exécutez les commandes suivantes pour vérifier le contenu du fichier “sales.txt ” et rechercher la chaîne “Feb ” dans le fichier du répertoire actuel :
cat sales.txt
grep 'Feb' *Selon la sortie suivante, la chaîne "Feb" existe dans la deuxième ligne du fichier "sales.txt". La sortie de la commande "grep" montre que la chaîne de recherche est trouvée dans le fichier "sales.txt".
Exemple 2 : Utilisation de la commande “Grep” avec l'option -R et le drapeau -Exclude-Dir
Exécutez la commande suivante pour rechercher la chaîne « CSE » de manière récursive en excluant le répertoire temp :
grep -r 'CSE*' --exclude-dir= "temp"Selon la sortie suivante, la chaîne « CSE » existe dans les trois lignes du fichier « sales.txt » du dossier temporaire :
Exemple 3 : Utilisation de la commande “Grep” avec l'option -R
L'option -R est utilisée avec la commande "grep" pour rechercher le contenu dans le fichier et le lien symbolique du fichier. Exécutez la commande suivante pour rechercher la chaîne "sleep" dans tous les fichiers et les liens symboliques des fichiers des répertoires et sous-répertoires actuels :
grep -R 'sleep' *La sortie suivante montre le résultat de la recherche de la chaîne "sleep" dans le répertoire courant. Un fichier de lien symbolique nommé "sleeplink.bash" est inclus dans la sortie. Les trois autres fichiers sont "sleep1.bash", "sleep2.bash" et "sleep3.bash" :
Exemple 4 : Utilisation de la commande “Grep” avec l'option -I
La commande « grep » recherche la valeur de chaîne de manière sensible à la casse. L'option -i est utilisée avec la commande « grep » pour rechercher le contenu dans le fichier de manière insensible à la casse. Exécutez la commande suivante pour rechercher la chaîne « Credit » dans tous les fichiers des répertoires et sous-répertoires actuels :
grep -i 'Credit' *Selon la sortie, la chaîne “credit” existe à deux emplacements du fichier “sum1.bash”. La chaîne recherchée est “Credit” et elle correspond à la chaîne “credit” en utilisant l'option -i :
Exemple 5 : Utilisation de la commande “Grep” avec le symbole “^”
Le symbole « ^» est utilisé pour rechercher la chaîne au début de la ligne d'un fichier. Exécutez la commande suivante qui recherche la chaîne « printf » dans tous les fichiers Bash du répertoire actuel :
grep '^printf' *.bashSelon la sortie, la chaîne “printf ” existe à un endroit du fichier “namedarg3.bash ” :
Exemple 6 : Utilisation de la commande “Grep” avec le symbole “$”
Le symbole « $» est utilisé pour rechercher la chaîne à la fin de la ligne d'un fichier. Exécutez la commande suivante qui recherche les lignes dans tous les fichiers texte du répertoire actuel contenant les chiffres à la fin du fichier :
grep '[0-9]$' *.txtSelon la sortie, trois fichiers contiennent des valeurs numériques à la fin des lignes. Ce sont « courses.txt », « employees.txt » et « sales.txt » :
Exemple 7 : Utilisation de la commande “Grep ” avec la classe de plage [0-9]
La plage [0-9] est utilisée pour définir tous les nombres qui contiennent n'importe quel chiffre de 0 à 9. Exécutez la commande suivante qui recherche les lignes dans tous les fichiers texte du répertoire actuel contenant une chaîne « CSE » et n'importe quel chiffre dans les fichiers du répertoire actuel :
grep 'CSE[0-9]' *.txtSelon la sortie, un fichier nommé "courses.txt" du répertoire actuel contient "CSE" avec les chiffres en trois lignes :
Conclusion
La commande « grep » est principalement utilisée pour rechercher dans un fichier particulier, mais le « grep » récursif est utilisé pour rechercher de manière récursive dans plusieurs fichiers d'un répertoire. Ainsi, le « grep » récursif est plus efficace pour des recherches approfondies. Les utilisations du « grep » récursif avec différents types d'options et de motifs sont présentées dans ce tutoriel.






