GNU/Linux >> Tutoriels Linux >  >> Linux

Exemples courants de la commande Grep sous Linux [avec téléchargement gratuit de la feuille de triche]

Grep est une commande UNIX puissante qui vous permet de rechercher dans le contenu du fichier sur une variété de paramètres. C'est particulièrement utile lorsque vous effectuez un dépannage ou un débogage.

La commande grep propose un grand nombre d'options et de cas d'utilisation. Vous n'aurez probablement jamais besoin ou utiliserez tous. Cependant, vous finirez par utiliser une poignée de commandes grep la plupart du temps.

Cet article répertorie les commandes grep les plus courantes avec des exemples rapides. Linux Handbook a déjà un article détaillé sur grep, donc je n'irai pas en profondeur ici. Je vais juste les options courantes et leur explication ici.

C'est bien si vous êtes déjà familiarisé avec la commande grep mais que vous oubliez toujours quelle option fait quoi.

Option Exemple de commande Description
je fichier de modèle grep -i Recherche insensible à la casse
A grep -Un fichier de modèle Afficher n lignes après le match
B fichier de modèle grep -B n Afficher n lignes avant le match
C fichier de modèle grep -C n Afficher n lignes avant et après le match
v fichier de modèle grep -v Afficher les lignes qui ne correspondent pas
c fichier de modèle grep -c Compter le nombre de lignes correspondantes
l fichier de modèle grep -l Afficher uniquement les noms de fichiers
w fichier de modèle grep -w Faites correspondre le mot exact
e grep -e fichier regex Faire correspondre le modèle regex
un grep -un fichier de modèle Recherche dans les fichiers binaires
r grep -r répertoire du modèle Recherche récursive dans le répertoire

J'ai inclus une feuille de triche PDF que vous pouvez télécharger, imprimer et conserver sur votre bureau.

Télécharger la feuille de triche Grep

Exemples rapides de la commande Grep

Vous savez probablement déjà que pour rechercher un texte ou un motif particulier dans un fichier, vous devez utiliser grep comme ceci :

grep search_pattern filename

Voyons quelques cas d'utilisation courants de la commande grep.

Par défaut, la recherche avec grep est sensible à la casse. Vous pouvez ignorer la correspondance de casse avec le -i choix :

grep -i search_pattern filename

De cette façon, grep renverra les lignes qui correspondent à la fois à Holmes et holmes .

Afficher les lignes avant et après les lignes correspondantes

Par défaut, vous ne voyez que les lignes correspondantes. Mais lorsque vous dépannez quelque chose, il est utile de voir quelques lignes avant et/ou après les lignes correspondantes.

Vous pouvez utiliser le -A pour afficher les lignes après celles qui correspondent. Rappelez-vous, A est pour Après.

La commande ci-dessous affichera les lignes correspondantes ainsi que les 5 lignes après la correspondance.

grep -A 5 search_pattern filename

De même, vous pouvez utiliser le -B option pour afficher les lignes avant celles qui correspondent. Rappelez-vous, B est pour Avant.

La commande ci-dessous affichera 5 lignes avant celles qui correspondent avec la ou les lignes correspondantes.

grep -B 5 search_pattern filename

Ma préférée est l'option -C car il affiche les lignes qui sont avant et après celles qui correspondent. Rappelez-vous, C ici signifie Cercle.

La commande ci-dessous affichera 5 lignes avant la ligne correspondante, la ligne correspondante et 5 lignes après la ligne matchine.

grep -C 5 search_pattern filename

Afficher les lignes qui ne correspondent pas

Vous pouvez utiliser grep pour afficher toutes les lignes qui NE correspondent PAS au modèle donné. Cette 'correspondance inversée' est utilisée avec le -v choix :

grep -v search_pattern filename

Vous pouvez combiner -i et -v options.

Compter le nombre de lignes correspondantes

Au lieu d'afficher les lignes correspondantes, vous pouvez simplement obtenir le nombre de lignes correspondant au modèle avec -c option. C'est un c minuscule.

grep -c search_pattern filename

Vous pouvez combiner le -c et -v option pour obtenir le nombre de lignes qui ne correspondent pas au modèle donné. Vous pouvez bien sûr utiliser l'option insensible à la casse -i .

Afficher les numéros de ligne des lignes correspondantes

Pour afficher les numéros de ligne des lignes correspondantes, vous pouvez utiliser le -n option.

grep -n search_pattern filename

Vous pouvez faire la même chose avec la recherche inversée.

Rechercher dans plusieurs fichiers

Vous pouvez fournir plusieurs fichiers dans lesquels grep effectuera une recherche.

grep search_pattern file1 file2

Cela pourrait fonctionner, mais un exemple plus pratique consiste à rechercher un type particulier de fichiers. Par exemple, si vous souhaitez rechercher une chaîne uniquement dans les scripts shell (fichiers se terminant par .sh), vous pouvez utiliser :

grep search_pattern *.sh

Rechercher tous les fichiers d'un répertoire de manière récursive

Vous pouvez effectuer une recherche récursive avec l'option grep -r . Il recherchera le modèle donné dans tous les fichiers du répertoire courant et de ses sous-répertoires.

grep -r search_pattern directory_path

Afficher uniquement les noms de fichiers

Par défaut, grep affiche les lignes correspondantes. Si vous avez lancé la recherche sur plusieurs fichiers et que vous souhaitez uniquement voir quels fichiers contiennent la chaîne, vous pouvez utiliser le -l option.

grep -l search_pattern files_pattern

Supposons que vous souhaitiez voir quels fichiers Markdown contiennent le mot "manuel", vous pouvez utiliser :

grep -l handbook *.md

Rechercher uniquement le mot complet

Par défaut, grep affichera toutes les lignes contenant la chaîne donnée. Vous ne le souhaitez peut-être pas toujours. Si vous recherchez le mot 'fait', il affichera également les lignes contenant les mots 'doner' ou 'abandonné'.

Pour que grep recherche uniquement le mot complet, vous pouvez utiliser l'option -w :

grep -w search_string file

De cette façon, si vous recherchez le mot 'fait', il n'affichera que les lignes contenant 'fait', pas 'doner' ou 'abandonné'.

Rechercher des modèles de regex

Vous pouvez optimiser votre recherche en utilisant un modèle regex. Il existe une option dédiée -e qui permet d'utiliser le modèle regex et l'option -E qui permet d'utiliser des modèles regex étendus.

grep -e regex_pattern file

Rechercher tel ou tel modèle

Vous pouvez rechercher plusieurs modèles dans la même recherche grep. Si vous voulez voir les lignes qui contiennent un motif ou l'autre, vous pouvez utiliser l'opérateur OU | . Cependant, vous devez échapper ce caractère spécial de la manière suivante.

grep 'pattern1\|pattern' filename

Vous pouvez utiliser plusieurs modèles avec l'opérateur OR.

Il n'y a pas d'option spécifique pour l'opérateur AND. Vous pouvez utiliser grep plusieurs fois avec la redirection de canal pour cela.

Rechercher des fichiers binaires

Grep ignore les fichiers binaires par défaut. Vous pouvez le faire rechercher dans des fichiers binaires comme s'il s'agissait d'un fichier texte en utilisant le -a option.

grep -a pattern binary_file

Télécharger l'aide-mémoire de la commande Grep

Vous pouvez mettre cette page en signet pour référencer rapidement les options de la commande grep et les cas d'utilisation.

Vous pouvez également télécharger cette feuille de triche grep au format PDF, l'imprimer et la conserver à votre bureau pour avoir un coup d'œil rapide sans perdre de temps.

Téléchargez Grep Command Cheatsheet GRATUITEMENTTéléchargez instantanément les commandes grep courantes avec description au format PDF.grep-command-cheatsheet.pdf78 KB

Faites-moi savoir si vous avez d'autres cas d'utilisation courants de grep que vous aimeriez voir sur cette page.


Linux
  1. Comment utiliser la commande Linux grep

  2. La commande Linux Sed :utilisation et exemples

  3. Exemples essentiels de la commande File sous Linux

  4. Commande gratuite sous Linux expliquée avec des exemples

  5. 5 exemples pratiques de la commande dd sous Linux

10 exemples utiles de la commande Sort sous Linux

Exemples essentiels de la commande ps sous Linux

Commande Grep sous Linux (avec exemples)

Utilisation de la commande grep sous Linux

8 utilisations courantes de la commande Linux Touch

exemples de commandes gratuits sous Linux