Comment utiliser le grep pour rechercher récursivement

Comment utiliser le grep pour rechercher récursivement
L'instruction «grep» a été très connue parmi les utilisateurs de Linux pour ses capacités de recherche. La requête «grep» fonctionne différemment alors qu'elle était utilisée avec différents drapeaux pour la recherche récursive. Le drapeau le plus utilisé de la commande grep est «-r» qui implique de rechercher dans le répertoire actuel. Ayons quelques exemples de recherche récursive dans Ubuntu 20.04 Utilisation de la commande grep. Commencez par le lancement de l'application du terminal via la clé de raccourci «Ctrl + Alt + T».

Recherche sans chemin de répertoire

Le moyen le plus simple et le plus simple pour la recherche récursive consiste à utiliser un indicateur «-r» simple dans la commande grep et un modèle de correspondance sans aucun chemin mentionné. Nous utilisons la commande grep pour rechercher un modèle «John» dans les fichiers. L'indicateur «-r» recherchera tous les fichiers situés dans le répertoire à domicile ou actuel d'Ubuntu 20.04 et dans les sous-dossiers du répertoire domestique aussi. Vous pouvez le voir affiche les chemins de fichier qui ont la correspondance particulière et affiche également le texte correspondant dans ce fichier. Les deux premiers fichiers sont situés dans le sous-répertoire des documents du dossier à domicile, tandis que les deux autres sont situés dans le répertoire domestique. Cela signifie qu'il a également recherché à chaque sous-dossier du répertoire actuel.

$ grep -r "John"

Recherchons récursivement un autre mot, «Heart» en utilisant l'instruction GREP avec le drapeau «-r». La sortie de commande montre qu'il a été trouvé dans les deux fichiers. Un fichier réside dans le répertoire domestique tandis que l'autre est dans le sous-répertoire de la maison, je.e., Documents. Les deux fichiers contiennent le même nom.

$ grep -r "coeur"

Jetons un coup d'œil à une autre même instance avec un modèle de correspondance différent dans la commande grep. Nous avons donc utilisé le modèle «CSS» pour être recherché à partir du système récursivement.

$ grep -r "css"

Une autre façon est d'utiliser le panneau «*» pour rechercher partout dans les dossiers et les sous-dossiers. Nous avons donc fouillé le caractère simple «A» et l'avons trouvé dans chaque fichier texte du répertoire domestique et de ses sous-dossiers.

$ grep -r "a" *

Ayons une recherche récursive en utilisant la commande grep mais d'une manière différente. Nous rechercherons un modèle tandis que le texte dans les fichiers ne sera pas affiché dans le terminal à l'aide du drapeau «-l» dans l'instruction. Seul le nom ou le chemin du fichier sera donné dans la sortie qui montre que le modèle donné a été trouvé. Nous avons donc essayé la même requête avec l'ajout du drapeau «-l» pour rechercher le modèle «CSS». Il affiche les fichiers associés et leurs chemins dans la sortie.

$ grep -r -l "css"

Recherche avec le chemin du répertoire

Maintenant, nous verrons le fonctionnement de la commande récursive grep sur le chemin du répertoire donné. Nous aurons donc recherché trois modèles différents dans les «téléchargements» du sous-répertoire du dossier à domicile. Le chemin vers les dossiers de téléchargements a été indiqué dans l'image dans la commande grep. Nous n'avons rien en retour car le modèle n'a pas correspondant ou n'a été trouvé.

$ grep -r cdd / home / linux / téléchargements
$ grep -r css / home / linux / téléchargements
$ grep -r poète / home / linux / téléchargements

Recherchons un autre modèle «est» dans le dossier des téléchargements en utilisant la même instruction. Nous avons trouvé deux sorties pour ce modèle. La sortie affiche les chemins de fichier avec le texte. Il a également mis en évidence le modèle correspondant, je.e., "est".

$ grep -r est / home / linux / téléchargements

Nous avons recherché un autre modèle, «OK» dans le dossier des téléchargements et obtenu seulement une sortie en retour car il est égal à un seul fichier.

$ grep -r ok / home / linux / téléchargements

Le même modèle «ok» a été recherché à partir du sous-répertoire différent cette fois, je.e., Documents. La commande grep n'a rien renvoyé car le dossier ne contient aucun fichier avec un modèle particulier «ok» à l'intérieur.

$ grep -r est / home / linux / documents

Vous pouvez également rechercher de manière récursive la valeur de la chaîne. Donc, nous avons fourni l'adresse IP en tant que chaîne et mentionné le chemin. Cette commande recherchera tous les fichiers et dossiers du répertoire «etc» pour rechercher le modèle de chaîne. La sortie montre un seul résultat.

$ grep -r “192.168.dix.1 ”/ etc /

Rechercher plusieurs modèles

Nous avions examiné les exemples pour rechercher le modèle unique en utilisant l'instruction récursive grep. Maintenant, nous verrons la façon de rechercher plusieurs modèles également récursivement. Nous avons donc utilisé la commande grep avec le drapeau «-rw». Cela indique que les multiples recherches se sont produites. Après ce drapeau, vous pouvez également mentionner le chemin. Nous l'avons utilisé sans le chemin de la recherche dans le répertoire domestique et ses sous-dossiers. Le drapeau «-e» a été utilisé ici pour indiquer le modèle unique. Vous pouvez utiliser de nombreux drapeaux «-e» en fonction du nombre de modèles que vous souhaitez rechercher. Nous n'avons recherché que deux modèles ici en utilisant «-e». Nous avons trouvé les 4 fichiers dans la sortie correspondant. Trois fichiers contiennent le modèle «CSS» et 1 contient le modèle «OK» à l'intérieur.

$ grep -rw -e ok -e css

Vous pouvez également utiliser la commande grep pour rechercher plusieurs modèles dans le fichier spécifique. Pour cela, vous devez supprimer le drapeau «-rw» de la requête et ajouter des drapeaux «-e» autant que vous le souhaitez. Mais vous devez mentionner le nom de fichier à la fin, comme démontré ci-dessous. Il affiche tout le texte à partir du fichier et met en évidence le modèle de correspondance.

$ grep -e «génial» -e «css» -e «est» -e «coeur» nouveau.SMS

Recherche avec le drapeau «inclure»

Le mot-clé inclue Flag a été utilisé pour spécifier les types de fichiers qui sont recherchés uniquement. Aucun autre fichier ne sera recherché. Donc, dans le premier cas, nous ne pouvions rien obtenir.

$ grep -r -include = ”* txt" "ok" / home / linux /
$ grep -r -include = ”* txt” “new” / home / linux /

Dans notre deuxième cas, nous avons trouvé une seule sortie.

Un autre modèle, «CSS» a été utilisé pour une recherche récursive et a obtenu trois résultats, comme démontré dans l'image.

$ grep -r -include = ”* txt” “css” / home / linux /

Conclusion

La recherche récursive a été démontrée dans ce guide en utilisant la commande grep. La commande «grep» a utilisé de nombreux drapeaux pour fonctionner différemment tout en faisant une recherche récursive, je.e., «-R» et «inclure». Le tutoriel explique également la recherche récursive avec et sans les chemins de répertoire donnés dans la commande grep. Ainsi, cet article contient un paquet d'exemples faciles à faire pour que ses utilisateurs apprennent la recherche récursive le plus facilement.