Comment utiliser le grep récursivement?

Comment utiliser le grep récursivement?

La commande grep est utilisée pour rechercher du texte à partir de fichiers. C'est un motif polyvalent qui invoque le grep avec -r. -R Fichiers de recherche d'options Recursivement à partir des sous-répertoires, à partir du répertoire actuel. La commande est exécutée à partir du répertoire de niveau supérieur. Par exemple / maison / ABC, etc. Grep est un outil pour obtenir des dépendances tout en passant d'un hôte à un autre. Si nous ne mentionnons pas un répertoire dans la commande, Grep recherchera le répertoire de travail actuel. Pour effectuer le grep récursivement, il y a trois arguments que nous avons tirés de la page de l'homme de Grep.

$ Man grep

-Inclure est utilisé pour une correspondance exacte dans le fichier qui pourrait être des fichiers présents dans le répertoire, ou par défaut. -R implique le nom du répertoire, comme décrit précédemment, si aucun chemin n'est défini dans la commande, le répertoire actuel est considéré. Il ne suit qu'un lien symbolique. -R est assez différent de -r car il lit tous les fichiers, pas seulement ceux à définition symboliquement.

Syntaxe

Grep -r «motif» / path /

«Path» est un «chemin de répertoire». Et le modèle est un mot ou une chaîne que vous souhaitez rechercher.

Prérequis

Pour comprendre la fonction récursive Grep, vous devez avoir un système d'exploitation Linux. Après l'installation, vous configurerez Linux en fournissant un nom d'utilisateur et un mot de passe. Après cela, vous obtiendrez des privilèges pour accéder à toutes les applications de ce système d'exploitation.

Tous les fichiers de Linux

Cette commande vous aidera à rechercher tous les noms de fichiers dans les répertoires de votre système. Comme -l fonctionne pour ne fournir que les noms de fichiers, -r aidera à rechercher symboliquement partout où le mot requis est présent, sera disponible en sortie. Tandis que «aqsa» est le mot que nous voulons rechercher. Cette commande est sans chemin vers le répertoire car ici, nous voulons tous les noms de fichiers possibles dans le système. Si nous avons fourni un chemin, alors le processus de recherche aura des limites.

$ grep -r -l "aqsa"

Exemple simple

Pour comprendre le dilemme de la récursivité à l'aide du chemin, nous avons introduit un exemple simple pour guider l'utilisateur. Comme indiqué dans la commande ci-dessous, «polyvalent» est un mot que nous voulons rechercher. Après le mot, il y a un répertoire dans lequel nous souhaitons trier. Il affiche à la fois le nom de fichier avec le répertoire et l'ensemble du texte à l'intérieur du fichier. -R affiche également les fichiers binaires.

$ grep -r polyvalent / home / aqsayasin

Recherchez de manière récursive dans tous les répertoires et sous-répertoires

Comme nous connaissons tous la fonctionnalité de «*» dans le système de recherche. Cela implique le tri dans tous les fichiers. Ainsi, la commande affichera les données respectives de tous les fichiers. Le mot «maison» doit être fouillé de manière récursive à l'aide de la déclaration grep.

$ grep -r «maison» *

Il montre les noms de fichiers et le texte à l'intérieur en mettant en évidence le mot recherché, indiquant qu'une correspondance existe. Un seul fichier texte contenait ce mot, qui est montré dans la ligne résultante.

Grep récursivement pour une chaîne

Contrairement aux exemples ci-dessus, Grep fonctionne sur une chaîne dans le répertoire spécifique. / etc / est le répertoire de commande qui signifie que la recherche se fera via ce répertoire, l'adresse IP d'un ordinateur. Ses informations sont enregistrées dans le répertoire, ayant des noms de fichiers présents dans le répertoire / etc / PPP /. L'option est le nom d'un dossier particulier. Cette commande lira tous les fichiers sous le répertoire donné.

$ grep -r “192.168.1.5 ”/ etc /

Les noms du fichier dans la sortie peuvent être supprimés à l'aide de l'option H. La commande est la suivante.

$ grep -h -r "192.168.1.5 "/ etc /

Les deux séparateurs peuvent être écrits comme -h -r dans une commande.

Recherchez récursivement sans répertoire

La recherche récursive peut également être effectuée sans utiliser un répertoire en recherchant simplement un mot avec un seul mot.

$ grep -r épouse

Le mot «épouse» est recherché automatiquement dans tous les répertoires car lorsqu'il n'y a pas de répertoire mentionné, le processus de recherche se déroulera dans tous les fichiers et répertoires du système. Il comprendra également des fichiers binaires avec les fichiers texte. L'adresse de fichier et les noms de fichiers sont affichés au début. Tandis que le texte à l'intérieur du fichier s'affiche. Non seulement le texte brut mais aussi la commande grep appliquée sur le texte du fichier est affichée, je.e., grep 'je suis une femme de la maison'.

Grep Exact multiples motifs

La recherche de plusieurs méthodes est également une fonctionnalité obtenue via la commande grep. «-Rw» est utilisé pour explorer la correspondance particulière. "-E" est utilisé pour ajouter plus d'un modèle dans la commande. Le chemin du répertoire est mentionné pour rendre le système à rechercher. Les fichiers binaires sont exclus car la limite est introduite dans l'ajout d'un répertoire dans la commande. La sortie contient le nom du répertoire de fichiers et le nom du fichier. De plus, le texte à l'intérieur du fichier s'affiche.

$ grep -rw '/ home / aqsayasin /'

Les mots recherchés sont mis en évidence dans le texte du fichier. Les deux termes recherchés doivent être présents dans un seul fichier. Il y a une probabilité d'existence de mots dans différents fichiers, comme le montre la sortie.

Grep récursivement en utilisant - -include

«-Include» correspond au modèle de fichier donné et fonctionne efficacement car il accélère également le processus de recherche, ce qui fonctionne la plupart des fichiers. Ici, il n'apporte pas binaire ou compilé, ni fichiers d'image dedans. L'extension de fichier est utilisée pour ajouter des limitations à la commande. Le répertoire est mentionné pour apporter la sortie requise. Le mot-clé inclus est assez avancé dans le grep par rapport à d'autres fonctionnalités.

$ grep -r - -include = ”* txt” «sœur» / home / aqsayasin

Conclusion

Dans cet article, nous avons expliqué chaque exemple pour démontrer l'utilisation de la fonction récursive Grep. Une fonction récursive est utilisée pour rechercher avec des limitations et précisément dans tous les répertoires du système. Si un répertoire n'est pas présent, le répertoire actuel est considéré par défaut.