GNU/Linux >> Tutoriels Linux >  >> Ubuntu

15 exemples d'utilisation de la commande Grep sous Linux

Grep, ou Global Regular Expression Print, est une commande Linux extrêmement utile pour trouver des modèles correspondants. Il peut parcourir les fichiers et les répertoires et lire également les entrées des commandes. Il recherche avec des expressions régulières ou des expressions régulières et imprime des lignes à partir d'un fichier qui correspond au modèle donné.

Dans cet article, nous verrons comment utiliser la commande Grep sous Linux. Les commandes décrites ici ont été testées sur Ubuntu 20.04. Les mêmes commandes Grep fonctionnent également pour Debian, Mint, Fedora et CentOS.

Installation de la commande grep

La plupart des distributions Linux, y compris Ubuntu 20.04 LTS, sont livrées avec grep installé. Si Grep n'est pas installé sur votre système, vous pouvez l'installer à l'aide de la commande ci-dessous dans Terminal :

$ Sudo apt-get install grep

Syntaxe de la commande grep

La syntaxe de base de la commande Grep est la suivante :

$ grep [options] PATTERN [FILE...]

Utilisation de la commande Grep

Rechercher un mot dans un fichier

Avec Grep, vous pouvez rechercher n'importe quel mot dans un fichier spécifique. La syntaxe serait :

$ grep <word> <filename>

Par exemple, la commande ci-dessous recherchera le mot "Donuts" dans le fichier "Donuts.txt".

$ grep Donuts Donuts.txt

Rechercher un mot dans plusieurs fichiers

Vous pouvez également rechercher un mot spécifique dans plusieurs fichiers.

$ grep <word> <filename1> < filename2>

Par exemple, la commande ci-dessous recherchera le mot "Donuts" à la fois dans "Donuts.txt" et "cakes.txt".

$ grep Donuts Donuts.txt cakes.txt

Ignorer la casse

Grep effectue des recherches sensibles à la casse par défaut, cela signifie qu'il traite "Donut" et "donuts" différemment. Si nous exécutons à nouveau la commande ci-dessus avec "beignets", vous ne verrez aucune sortie cette fois.

$ grep donuts Donuts.txt

Pour ignorer la casse, vous devrez ajouter "-i ” à votre commande comme ceci :

$ grep –i <word> <filename>

Rechercher un fichier par extension dans un répertoire

Vous pouvez également rechercher un fichier dans un répertoire spécifique par son extension. Utilisez la syntaxe suivante pour ce faire :

$ ls ~/<directory> | grep .<file type>

Par exemple, pour trouver tous les fichiers ".jpeg" dans le dossier "Téléchargements", la commande serait :

$ ls ~/Downloads | grep .jpeg

Imprimer des lignes qui ne correspondent pas à un motif

Avec Grep, vous pouvez également imprimer les lignes qui ne correspondent pas à votre modèle en ajoutant "-v " à votre commande. Utilisez la syntaxe suivante pour ce faire :

$ grep -v <word> <filename>

Par exemple, la commande suivante imprimera toutes les lignes sauf celle qui contient le mot "Donuts".

Imprimer uniquement le mot correspondant

Par défaut, grep imprime toute la ligne contenant le motif. Pour imprimer uniquement le mot correspondant, ajoutez "-o ” à votre commande.

$ grep -o <word> <filename>

Par exemple, la commande suivante n'imprimera que le mot "Donuts" au lieu d'imprimer la ligne entière du fichier "Donuts.txt".

Impression du numéro de ligne du motif et de la ligne correspondants

Par défaut, grep imprime toute la ligne contenant le motif. Pour imprimer à la fois le numéro de ligne et la ligne contenant le mot correspondant, ajoutez "-n ” à votre commande.

$ grep -n <word> <filename>

Par exemple, la commande suivante imprimera à la fois le numéro de ligne et la ligne contenant le mot "Donuts".

$ grep -n Donuts Donuts.txt

Imprimer des noms de fichiers qui correspondent à un modèle

Pour imprimer tous les fichiers de votre répertoire courant qui correspondent à votre modèle, utilisez la syntaxe suivante :

$ grep -l “<word>” *

Par exemple, la commande suivante imprimera tous les fichiers contenant le mot "Bonjour" :

$ grep -l “Hello” *

Imprimer le mot correspondant entier

Par défaut, grep imprime tous les mots qui correspondent à votre modèle, même s'ils font partie d'un mot. Regardez l'image ci-dessous.

Nous avons recherché la chaîne "faire " et peut voir toutes les lignes qui contiennent " do ”. Pour faire correspondre le mot exact, ajoutez "-w ” à votre commande.

$ grep –w <word> <filename>

Par exemple, pour rechercher le mot exact "do ” dans le fichier Donuts.txt, la commande serait :

$ grep -w do Donuts.txt

Comme vous pouvez le voir, il n'imprime plus que la ligne contenant le mot exact "faire ”.

Lignes correspondantes commençant par un mot particulier

Pour imprimer des lignes commençant par un mot particulier, ajoutez "^ ” à votre commande.

$ grep ^<word> <filename>

Par exemple, la commande suivante imprimera toutes les lignes commençant par "Th ”.

$ grep ^Th Donuts.txt

Lignes correspondantes qui se terminent par un motif

Pour imprimer des lignes qui se terminent par un motif particulier, ajoutez "$ ” à votre commande.

$ grep <word>$ <filename>

Par exemple, la commande suivante imprimera toutes les lignes qui se terminent par "t ”.

$ grep t$ Donuts.txt

Lignes correspondantes contenant certaines lettres

Si vous souhaitez rechercher des lignes contenant une ou plusieurs lettres, utilisez la syntaxe suivante :

$ grep “[<letters>]” <filename>

Par exemple, la commande suivante imprime toutes les lignes contenant une lettre de "a" à "f".

$ grep “[a-f]” Donuts.txt

Recherche récursive

Pour rechercher tous les fichiers d'un répertoire et d'un sous-répertoire pour un motif ou un mot particulier, utilisez :

$ grep -R <word> <path>

Par exemple, la commande suivante listera tous les fichiers contenant le mot "Bonjour" dans le répertoire Documents. Dans la sortie ci-dessous, vous pouvez voir les chemins d'accès aux fichiers avec les mots correspondants.

$ grep -R “Hello” /home/maryam/Documents

Imprimer des lignes spécifiques avant/après les mots correspondants

Par défaut, Grep imprime uniquement la ligne correspondant au modèle spécifique. Avec -A dans Grep, vous pouvez également inclure des lignes avant ou après les mots correspondants.

Imprimer des lignes après le match

Pour imprimer les lignes contenant les mots correspondants, y compris N nombre de lignes après les matchs :

$ grep -A <N> <word> <filename>

Par exemple, la commande suivante imprimera la ligne contenant le mot "enfer" avec 1 ligne après.

$ grep -A 1 hell Donuts.txt

Imprimer des lignes avant le match

Pour imprimer les lignes contenant les mots correspondants, y compris N nombre de lignes avant les matchs :

$ grep -B <N> <word> <filename>

Par exemple, la commande suivante imprimera la ligne contenant le mot "enfer" avec 1 ligne avant.

$ grep -B 1 hell Donuts.txt

Imprimer des lignes avant et après le match

Pour imprimer les lignes contenant les mots correspondants, y compris N nombre de lignes avant et après les matchs :

$ grep -C <N> <word> <filename>

Par exemple, la commande suivante imprimera la ligne contenant le mot "enfer" avec 1 ligne avant et après.

$ grep -C 1 hell Donuts.txt

Compter le nombre de matchs

Utilisation du -c option avec grep, vous pouvez compter les lignes qui correspondent à un modèle spécifique. N'oubliez pas qu'il ne correspondra qu'au nombre de lignes et non au nombre de mots correspondants.

$ grep -c <word> <filename>

Par exemple, la commande suivante imprime le nombre de lignes contenant le mot "Donuts".

$ grep -c Donuts Donuts.txt

Notez que notre fichier "Donuts.txt" contient 4 "Donuts", mais -c n'a imprimé que 3. Cela se produit car il compte le nombre de lignes au lieu du nombre de correspondances.

Pour plus d'informations sur grep, utilisez la commande ci-dessous :

$ grep --help

ou visitez la page de manuel en utilisant la commande ci-dessous :

$ man grep

Cela vous mènera à la page de manuel de Grep.

C'est tout ce qu'il y a à faire ! Dans cet article, nous avons expliqué la syntaxe de base et l'utilisation de la commande grep sous Linux. Nous avons également parcouru certaines options de ligne de commande pour étendre son utilité. Si vous connaissez d'autres utilisations de la commande Grep sous Linux que nous avons manquées, nous aimerions en savoir plus dans les commentaires ci-dessous.

Explorez cet article connexe pour découvrir comment vous pouvez trouver des fichiers et des répertoires sous Linux.


Ubuntu
  1. 5 exemples pratiques de commande Linux fuser

  2. 7 Exemples de commandes Linux df

  3. 8 Exemples de commandes Linux TR

  4. Exemples d'utilisation de la commande dmsetup sous Linux

  5. Exemples de commande rm sous Linux

Utilisation de la commande Cat sous Linux avec des exemples

Utilisation de la commande GREP sous Linux avec des exemples

Exemples de commandes Linux Touch

Commande IP Linux avec exemples

Commande Grep sous Linux (avec exemples)

Exemples de commandes id sous Linux