Dans cet article, nous expliquerons l'utilité du grep avec différents exemples. Nous utiliserons Debian 10 pour expliquer les commandes et méthodes mentionnées dans cet article.
Installation de Grep
Grep est installé dans la plupart des distributions Linux. Cependant, dans le cas, il manque à votre système, vous pouvez l'installer en utilisant la méthode suivante dans le terminal:
$ sudo apt-get install grep
Utilisation du grep
Voici la syntaxe de base de la commande grep. Il commence par Grep suivi de certaines options et des critères de recherche, puis se termine par le nom du fichier.
$ grep [options] modèle [fichier…]
Rechercher des fichiers
Pour rechercher un nom de fichier dans un répertoire qui contient une chaîne spécifique, vous pouvez utiliser Grep de la manière suivante:
$ ls -l | grep -i “chaîne
Par exemple, pour rechercher un nom de fichier qui contient une chaîne "test«, La commande serait:
$ ls -l | Test grep -i
Cette commande répertorie tous les fichiers qui contiennent la chaîne "test".
Rechercher une chaîne dans un fichier
Pour rechercher une chaîne dans un fichier particulier, vous pouvez utiliser la syntaxe de commande suivante:
Nom de fichier «String» Grep «String»
Par exemple, pour rechercher une chaîne "test"Dans un fichier nommé TestFile1, Nous avons utilisé la commande suivante:
$ grep «Employee» testfile1
La sortie ci-dessus a renvoyé la phrase du TestFile1 qui contient la chaîne "employé".
Rechercher une chaîne dans plusieurs fichiers
Pour rechercher une chaîne dans plusieurs fichiers, vous pouvez utiliser la syntaxe de commande suivante:
$ grep «String» filename1 filename2
Par exemple, pour rechercher un «employé» de chaîne dans nos deux fichiers TestFile1 et TestFile2, nous avons utilisé la commande suivante:
$ grep «Employee» testfile1 testfile2
La commande ci-dessus répertorie toutes les lignes qui contiennent la chaîne «employé» à partir des fichiers TestFile1 et TestFile2.
Vous pouvez également utiliser un caractère générique si tous les noms de fichiers commencent par le même texte.
$ grep «String» Nom de fichier *
Comme, si nous prenons l'exemple ci-dessus dans lequel nos noms de fichiers étaient TestFile1 et TestFile2 , La commande serait:
$ grep «Employee» TestFile *
Recherchez une chaîne dans un fichier en ignorant le cas de la chaîne
Le plus souvent, vous avez rencontré cela lorsque vous recherchez quelque chose en utilisant Grep mais ne recevez pas de sortie. Cela se produit à cause d'un décalage de cas lors de la recherche d'une chaîne. Comme dans notre exemple, si nous utilisons par erreur «Employé" au lieu de "employé», Il renverra nulle car notre fichier contient la chaîne«employé”Dans les lettres minuscules.
Vous pouvez dire à Grep d'ignorer le cas de la chaîne de recherche en utilisant le drapeau -I après le grep comme suit:
$ grep -i nom de fichier "string"
En utilisant le drapeau -I, la commande effectuera la recherche insensible au cas et renverra toutes les lignes contenant la chaîne "employé"Dedans sans prendre en compte les lettres sont en majuscules ou en minuscules.
Recherche en utilisant l'expression régulière
S'il est correctement utilisé, l'expression régulière est une caractéristique très efficace de la grep. Avec la commande grep, vous pouvez définir une expression régulière avec un mot-clé de départ et de fin. Ce faisant, vous n'aurez pas besoin de taper toute la ligne avec la commande grep. La syntaxe suivante peut être utilisée à cet effet.
$ grep «Mot-clé de démarrage.* File de fichier EndingKeyword »
Par exemple, pour rechercher une ligne dans un fichier nommé TestFile1 qui commence par la chaîne «ceci» et se termine par la chaîne «données», nous avons utilisé la commande suivante:
$ grep «ceci.* data ”testfile1
Il imprimera toute la ligne du TestFile1 contenant l'expression (mot-clé de démarrage «ceci» et le mot-clé final «données»).
Imprimer un nombre particulier de lignes après / avant la chaîne de recherche
Vous pouvez également afficher le nombre spécifique de lignes dans un fichier avant / après une correspondance de chaîne avec la chaîne correspondante elle-même. La syntaxe suivante peut être utilisée à cet effet:
$ grep -aNom de fichier «String»
Il affichera n nombre de lignes après la correspondance de la chaîne dans le fichier spécifié, y compris la chaîne correspondante.
Par exemple, il s'agit de notre exemple de fichier nommé TestFile2.
La commande suivante sortira la ligne correspondante contenant la chaîne "employé», Ainsi que les 2 lignes après.
$ grep -a 2 -i «employé» testfile2
De même, pour afficher n nombre de lignes avant la chaîne correspondante dans un fichier spécifique, utilisez la syntaxe suivante:
$ grep -bNom de fichier «String»
Pour afficher n nombre de lignes autour de la chaîne dans un fichier spécifique, utilisez la syntaxe suivante:
$ grep -cNom de fichier «String»
Mettre en évidence la recherche
Grep par défaut imprimer les lignes correspondant mais ne montre pas quelle partie de la ligne est adaptée. Si vous utilisez l'option -color avec Grep, cela montrera où les chaînes d'usinage apparaissent dans votre fichier. Grep par défaut Utilisez la couleur rouge pour mettre en évidence.
La syntaxe suivante peut être utilisée à cet effet:
$ grep «String» Nom - Color
Compter le nombre de matchs
Si vous souhaitez compter combien de fois un mot particulier apparaît dans un fichier spécifique, vous pouvez utiliser l'option grep avec -c. Il ne renvoie que le nombre de matchs plutôt que les matchs lui-même. La syntaxe suivante peut être utilisée à cet effet:
$ grep -c «String» Nom
Ceci est notre exemple de fichier:
Voici un exemple d'une commande qui a renvoyé le nombre de fois le mot déposer est apparu dans un fichier nommé TestFile3.
Recherche inversée
Parfois, vous voulez effectuer une recherche inverse qui affiche toutes les lignes, sauf que celle correspondant à l'entrée. Pour ce faire, utilisez simplement le drapeau -v suivi de Grep:
$ grep -v nom de fichier «string»
Par exemple, pour afficher toutes les lignes dans un fichier TestFile3 qui ne contiennent pas le mot «compte» en eux, nous avons utilisé la commande suivante:
$ grep -v «compte» testfile3
Utilisation de Grep avec d'autres commandes
Le Grep peut également être utilisé pour filtrer le résultat requis de la sortie des différentes commandes. Par exemple, à partir du «Liste apt-installée » Sortie de commande, vous souhaitez trouver uniquement les packages qui ont été installés automatiquement, vous pouvez filtrer le résultat en utilisant Grep comme suit:
$ apt - liste d'installation | grep automatique
De même, LSCPU fournit des informations détaillées sur le CPU. Si vous êtes simplement intéressé par les informations concernant l'architecture du CPU, vous pouvez la filtrer en utilisant la commande suivante:
$ lscpu | architecture grep
Dans cet article, nous avons décrit quelques exemples qui vous aideront à comprendre les commandes GREP et son utilisation dans différentes conditions. Avoir une forte adhérence sur la commande grep peut gagner beaucoup de temps si vous devez regarder des fichiers de configuration ou de journal.