GNU/Linux >> Tutoriels Linux >  >> Linux

Comment effectuer une recherche de modèle dans les fichiers à l'aide de Grep

Dans notre premier article sur la commande grep, nous avons couvert un certain nombre de fonctionnalités offertes par l'outil, y compris comment vous pouvez l'utiliser pour rechercher uniquement des mots, rechercher deux mots, compter les lignes contenant le mot correspondant, etc. En plus de cela, l'outil fournit des fonctionnalités plus faciles à comprendre et utiles. Dans cet article, nous en aborderons quelques-uns.

Veuillez noter que tous les exemples mentionnés dans ce tutoriel ont été testés sur Ubuntu 14.04LTS. De plus, nous utiliserons le fichier suivant (test_file1.txt) pour tous nos exemples liés à grep dans ce didacticiel :

Recherche insensible à la casse avec Grep

Par défaut, grep est sensible à la casse, ce qui signifie, par exemple, qu'il traitera 'ABC' et 'abc' séparément. Cependant, si vous voulez que votre recherche soit insensible à la casse, vous pouvez utiliser le -i option de ligne de commande.

grep -i [string-to-be-searched] [filename]

Par exemple :

grep -i "linux" test_file1.txt

Remarque  :Non seulement le modèle (par exemple, "linux" dans l'exemple ci-dessus), la page de manuel grep indique que l'option -i garantit également que la sensibilité à la casse pour les fichiers d'entrée est également ignorée. Voici l'extrait :

 -i, --ignore-case
Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.)

Cependant, nous n'avons pas pu reproduire le comportement lié aux fichiers d'entrée de notre côté.

Afficher certaines lignes sans correspondance avec la ligne contenant la chaîne correspondante dans Grep

À l'aide de cet outil, vous pouvez également afficher un nombre spécifié de lignes après, avant ou autour de la ligne contenant la chaîne correspondante.

Utilisez le -A option de ligne de commande pour imprimer 'N' lignes après la ligne correspondante.

$ grep -A N [string-to-be-searched] [filename]

Par exemple :

$ grep -A 2 "linux" test_file1.txt

Voici le résultat de la commande ci-dessus

De même, l'option de ligne de commande -B est utilisée pour afficher les lignes avant la ligne correspondante.

$ grep -B N [string-to-be-searched] [filename]

Par exemple :

$ grep -B 2 "linux" test_file1.txt

Voici le résultat :

Enfin, pour imprimer des lignes autour de la ligne correspondante, utilisez l'option de ligne de commande -C.

$ grep -C N [string-to-be-searched] [filename]

Par exemple :

$ grep -C 2 "linux" test_file1.txt

Voici la sortie capturée :

Afficher uniquement les chaînes correspondantes dans Grep

Vous êtes également autorisé à imprimer uniquement la chaîne correspondante sur la sortie standard (au lieu des lignes complètes qui s'affichent par défaut). Cette fonctionnalité est accessible à l'aide de l'option de ligne de commande -o.

$ grep -o [string-to-be-searched] [filename]

Par exemple, si l'exigence est de rechercher une chaîne "linux" dans un fichier (mais que les lignes complètes ne doivent pas être imprimées), nous utiliserons la commande suivante.

$ grep -o "linux" [file-name]

Nous pouvons également utiliser des caractères génériques tels que * et .* pour grep plus d'une chaîne. Par exemple, si nous voulons grep un groupe de mots commençant par "comment" et se terminant par "linux", nous pouvons utiliser la commande suivante.

$ grep -o “how.*linux” [file-name]

Position d'affichage dans Grep

La commande grep vous permet également d'afficher le décalage d'octet de la ligne dans laquelle la chaîne correspondante apparaît. Cette fonction est accessible à l'aide de l'option de ligne de commande -b. Mais pour une meilleure utilisation de cette option, vous pouvez l'utiliser avec l'option de ligne de commande -o, qui affichera la position exacte de la chaîne correspondante.

$ grep -o -b [string-to-be-searched] [filename]

Par exemple :

$ grep -o -b "for" test_file1.txt

Voici le résultat :

Conclusion

Vous n'avez peut-être pas besoin de toutes ces options tous les jours, mais vous devriez au moins les connaître, car vous ne savez jamais quand elles pourraient vous être utiles. Grep devient encore plus puissant lorsqu'il est utilisé avec une expression régulière, mais nous laisserons ce sujet pour un autre jour.


Linux
  1. Comment comparer trois fichiers sous Linux à l'aide de l'outil diff3

  2. Utilisation de Sed pour rechercher et remplacer une ligne entre des plages de motifs

  3. Comment obtenir un nombre de fichiers dans un répertoire à l'aide de la ligne de commande ?

  4. Comment Grep Dans Des Fichiers Pdf ?

  5. Comment rechercher dans des fichiers spécifiques correspondant à un modèle ?

Comment exclure dans Grep

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux

Comment renommer des fichiers en utilisant la ligne de commande sous Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Comment effectuer une recherche Grep sur tous les fichiers et dans tous les répertoires

Comment télécharger des fichiers dans Rocky Linux 8 sur la ligne de commande à l'aide de wget