Comment utiliser la commande grep sous Linux + exemples
La commande grep (Global Regular Expression Print) permet de rechercher dans un fichier des lignes spécifiques contenant un motif particulier. Elle est utile pour vérifier rapidement l’existence d’une entrée, en particulier pour les éléments volumineux tels que les fichiers journaux.
Vous pouvez ajouter diverses options pour modifier le comportement de la commande pour des tâches spécifiques, comme la recherche inverse et la recherche de plusieurs mots clés. En raison de sa flexibilité, grep est un outil essentiel pour la gestion de votre serveur privé virtuel (VPS) basé sur le système d’exploitation Linux.
Cet article explique comment utiliser la commande grep sous Linux, y compris sa syntaxe et ses options. Vous découvrirez également quelques-unes de ses applications concrètes pour la gestion des fichiers de votre système.
Sommaire
Syntaxe de la commande Grep
La syntaxe de base de grep est la suivante :
grep [options] motif [FICHIER]
Voici l’explication de la signification de chaque élément :
- grep – le nom de l’utilitaire.
- options – arguments qui modifient le comportement de la commande grep.
- motif – le mot-clé que vous souhaitez rechercher.
- fichier – l’élément dont vous souhaitez rechercher le contenu.
Dans la section suivante, nous expliquerons les options les plus couramment utilisées et leurs exemples d’utilisation dans le monde réel.
Lisez le manuel grep pour en savoir plus sur toutes les options. Vous pouvez également consulter le guide de cet utilitaire dans votre interface de ligne de commande en entrant :
grep --help

Rappelez-vous que vous devez avoir le privilège “read” du fichier que vous voulez vérifier avec grep. Consultez notre tutoriel sur la modification des permissions sous Linux.
Utilisation de la commande grep de Linux
Dans cette section, nous discuterons de l’utilisation courante de l’utilitaire grep. Si vous utilisez un serveur virtuel, exécutez la commande via un client SSH tel que PuTTY. Pour les ordinateurs de bureau, ouvrez le terminal Linux en appuyant sur Ctrl + Alt + T.
Recherche de base
L’utilisation la plus élémentaire de grep consiste à filtrer les fichiers texte, en affichant les lignes qui contiennent un mot particulier. Pour ce faire, exécutez cette commande sans option, comme dans la syntaxe suivante :
grep mot-clé fichier
Vous pouvez également énumérer plusieurs noms de fichiers comme suit :
grep motif fichier1 fichier2 fichier3
Si vous souhaitez utiliser une phrase comme chaîne de recherche, mettez-la entre guillemets. Par exemple, cette commande trouvera les lignes contenant Linux distro dans le fichier d’exemple hostinger.txt :
grep "Linux distro" hostinger.txt

Notez que la syntaxe ne fonctionne que si le fichier d’entrée se trouve dans votre répertoire actuel. S’il se trouve à un autre endroit, indiquez le chemin complet comme suit :
grep motif /chemin/vers/le/fichier.txt
Important ! Comme les commandes Linux telles que grep sont sensibles à la casse, faites attention aux majuscules dans le motif de recherche et le nom du fichier.
Recherche récursive
Vous pouvez effectuer une recherche récursive dans tous les fichiers et sous-répertoires d’un dossier à l’aide de l’option -r. Voici la syntaxe :
grep -r mot-clé chemin/vers/un/dossier
Par exemple, nous avons un répertoire tutorial/content/linux contenant deux dossiers appelés commands et utilities. Pour rechercher le mot VPS dans tous les fichiers de ces dossiers, il suffit d’exécuter grep sur le chemin parent :
grep -r VPS tutorial/content/linux
La commande grep permet de lister les lignes correspondantes dans n’importe quel fichier et dossier du répertoire tutorial/content/linux.

Imprimer les entrées autour de la ligne correspondante
Grep vous permet d’afficher les lignes qui suivent et qui précèdent l’entrée correspondante pour vous donner plus de contexte. Pour ce faire, ajoutez ces options suivies du nombre de lignes voisines que vous souhaitez imprimer :
- A – imprime la ligne qui suit l’entrée correspondante.
- B – affiche la ligne avant l’entrée correspondante.
- C – affiche des lignes après et avant l’entrée.
Par exemple, la syntaxe grep suivante permet d’imprimer une entrée après les lignes correspondantes :
grep -A1 motif fichier

Recherche insensible à la casse
Par défaut, grep traite les motifs comportant des lettres différentes comme une chaîne différente. Par exemple, vous ne pouvez pas effectuer une recherche dans Grep et GREP en utilisant le mot-clé grep. Vous pouvez désactiver ce comportement en ajoutant l’option -i :
grep -i mot-clé fichier
Si nous voulons rechercher le mot vps en ignorant les distinctions entre majuscules et minuscules, exécutez la commande suivante :
grep -i vps hostinger.txt

Recherche inversée
Ajoutez l’option -v à votre commande grep comme cette syntaxe pour activer la recherche inverse, en imprimant les lignes qui ne correspondent pas :
grep -v mot clé fichier
Par exemple, cette commande n’affiche que les lignes sans le mot VPS du fichier hostinger.txt :
grep -v VPS hostinger.txt

Affichage des numéros de ligne
Si vous travaillez avec des fichiers volumineux comme un journal, les données de sortie peuvent être très longues. Cela rend difficile la vérification de l’emplacement du motif. Pour simplifier la tâche, vous pouvez afficher les numéros de ligne avec l’option -n comme suit :
grep -n mot clé fichier
Par exemple, cette commande imprimera les lignes de auth.log contenant le mot unknown user et leurs numéros :
grep -n "unknown user" auth.log
La ligne qui commence par le chiffre un signifie qu’il s’agit de la première entrée du fichier auth.log, et ainsi de suite.

Conseil de pro
Vous pouvez combiner les options de grep pour affiner la recherche. Par exemple, lancez grep -nv motif fichier pour afficher le numéro de ligne des entrées qui ne contiennent pas le motif spécifié.
Utilisation de grep avec des expressions régulières
Les expressions régulières, ou regex, sont des chaînes de caractères qui définissent un modèle de recherche. Elles sont utiles pour trouver une requête très spécifique sans avoir à énumérer les mots-clés individuellement. Voici quelques symboles de regex et leurs signifiants :
- . – correspond à n’importe quel caractère unique.
- * – représente zéro ou plus du caractère précédent.
- + – signifie un ou plusieurs des caractères précédents.
- ? – indique zéro ou un des caractères précédents.
- ^ – indique le début d’un motif d’expression rationnelle.
- $ – représente la fin d’un motif d’expression rationnelle.
- () – groupes de motifs.
Ces expressions rationnelles se comportent différemment selon que vous utilisez les expressions régulières étendues (ERE) avec l’option -E ou les expressions régulières de base (BRE) par défaut. Pour plus d’informations, lisez les différences entre BRE et ERE.
Par exemple, si vous souhaitez rechercher des motifs tels que abc et acc, exécutez la commande suivante. Le symbole du point (.) correspond à n’importe quel caractère :
grep -E 'a.c' fichier
Les symboles ^ et $ vous permettent de rechercher les lignes qui commencent ou se terminent par un motif spécifique. Prenons l’exemple de la commande grep suivante :
grep -E '^motif' fichier
La commande ci-dessus correspondra aux lignes qui commencent par motif, comme motif est une chaîne de texte. En revanche, la commande suivante recherchera les entrées qui se terminent par motif :
grep -E 'motif$' fichier
Vous pouvez également combiner plusieurs symboles regex pour affiner votre recherche et obtenir un résultat plus spécifique. Par exemple, cette commande recherchera les lignes contenant tout mot commençant par un H et se terminant par un R :
grep '^H.*R$' 1.txt

Recherche de motifs multiples
Vous pouvez rechercher plusieurs mots-clés à l’aide d’une seule commande grep. La façon la plus simple de le faire est d’énumérer les mots-clés entre guillemets (‘), séparés par des barres obliques inverses (\) et des pipes (|). Voici comment se présente la syntaxe :
grep 'motif1\|motif2\|motif3' fichier
Dans cette commande, grep utilise BRE puisque nous n’ajoutons aucune option. Pour éviter qu’il n’interprète le pip comme le motif recherché, nous l’échappons à l’aide de la barre oblique inverse.

Vous pouvez également rechercher plusieurs motifs sans barre oblique inverse en ajoutant l’option -E pour activer la fonction spéciale de la pipe, comme suit :
grep -E 'motif1|motif2|motif3' fichier
Au lieu de l’option -E, vous pouvez utiliser la commande egrep :
egrep 'motif1|motif2|motif3' fichier
Si vous souhaitez spécifier les motifs séparément, utilisez l’option -e pour chaque requête de recherche. Voici la syntaxe de la commande :
grep -e motif1 -e motif2 -e motif3 fichier
Toutes ces variantes de la commande grep produisent le même résultat. Choisissez donc l’une d’entre elles en fonction de vos préférences.
Compter les correspondances
Plusieurs tâches d’administration du système peuvent nécessiter de vérifier combien de lignes d’un fichier présentent un motif correspondant. Par exemple, ceci est utile pour compter les tentatives de connexion à partir d’une adresse IP spécifique dans un fichier journal.
Pour vérifier combien de lignes contiennent un motif, utilisez l’option -c ou –count comme suit :
grep -c motif fichier
Cependant, l’option -c compte les lignes correspondantes, et non l’occurrence du motif. Si vous voulez le vérifier, utilisez l’option -o et passez-la à la commande wc comme suit :
grep -o motif fichier | wc -l
Au lieu d’afficher la ligne entière, l’option -o n’affiche que les occurrences du motif, que la commande wc compte. Nous aborderons l’utilisation d’une pipe (|) dans la section suivante.

Notez que cette commande prend également en compte d’autres variantes du mot-clé. Par exemple, si vous utilisez le motif connect, grep recherchera les variantes reconnect, connected, connecting et disconnected.
Si vous souhaitez compter le mot correspondant exactement, ajoutez les limites du mot au début et à la fin de votre mot-clé. Voici un exemple :
grep -o '\bmotif\b' fichier
Combiner grep avec d’autres commandes
Outre les fichiers et les répertoires, vous pouvez filtrer les données d’entrée provenant d’une autre commande à l’aide de grep. Pour ce faire, combinez les deux commandes à l’aide d’une pipe (|) comme suit :
commande | grep motif
Dans l’extrait, le pipe redirige la sortie de la première commande vers grep, en filtrant le résultat sur la base du mot-clé. Voici un exemple d’utilisation réelle :
ls | grep '\.txt$'
La commande ls répertorie le contenu de votre répertoire actuel. Ensuite, la commande grep filtre la sortie, en imprimant les fichiers TXT contenus dans le dossier. Voici un autre exemple :
ps aux | grep "nom_du_processus"
La commande ps aux répertorie tous les processus en cours d’exécution dans votre système. Ensuite, l’utilitaire grep recherche un processus particulier dans la liste en se basant sur son nom.
En fonction de votre tâche, vous pouvez combiner grep avec d’autres outils. Les utilisateurs de l’hébergement VPS Hostinger qui ne sont pas sûrs des utilitaires à utiliser peuvent utiliser notre assistant IA, Kodee pour les aider à expliquer et à générer la commande complète.
Par exemple, demandez à Kodee : « Je souhaite répertorier tous les services de mon VPS Ubuntu et utiliser l’utilitaire grep pour filtrer les résultats, en n’affichant que ceux liés à NGINX. Générez la commande complète. »

Il écrira alors la commande appropriée à votre système et à vos besoins.

Rediriger la sortie
Les administrateurs système peuvent avoir besoin de sauvegarder les résultats de la commande grep en vue d’un traitement ultérieur ou d’une archive. Une façon simple de le faire est de rediriger les résultats vers un fichier texte en utilisant le symbole plus grand que (>). Voici la syntaxe :
grep motif fichier > fichier_cible.txt
Si le fichier cible n’existe pas, la commande grep le créera automatiquement dans votre répertoire de travail actuel.
Pour vérifier si grep enregistre correctement la sortie, imprimez le contenu du fichier cible à l’aide de la commande cat, comme suit :
cat fichier_cible.txt
Vous voulez en savoir plus sur les commandes Linux ?
Consultez notre tutoriel commandes Linux pour en savoir plus sur d’autres utilitaires de gestion de serveur couramment utilisés.
Conclusion
La commande grep vous permet d’utiliser un motif pour rechercher des lignes dans un fichier. Sa syntaxe de base est grep motif fichier, mais vous pouvez ajouter diverses options pour modifier la recherche en fonction de vos besoins.
Par exemple, ajoutez l’option -r pour rechercher de manière récursive des motifs dans les fichiers et les sous-répertoires d’un dossier. Bien que grep tienne compte de la casse par défaut, vous pouvez désactiver ce paramètre à l’aide de l’option -i pour trouver un motif correspondant sans tenir compte de la casse.
Vous pouvez également afficher les lignes non correspondantes à l’aide de l’option -v et ajouter l’option -n pour afficher leur numéro de séquence. Pour des motifs de recherche plus complexes, vous pouvez utiliser des symboles d’expressions régulières.
Dans le monde réel, vous pouvez avoir besoin de combiner grep avec d’autres commandes et de rediriger les résultats de la recherche vers un fichier pour la sauvegarde. Comme cet utilitaire est très polyvalent, utilisez Kodee pour écrire la commande complète.
Comment utiliser la commande grep – FAQ
A quoi sert la commande grep ?
La commande grep est couramment utilisée pour rechercher dans un fichier les lignes contenant un mot-clé spécifique. Elle est également utile pour filtrer la sortie d’un autre utilitaire, en n’affichant que les lignes contenant un motif particulier. Vous pouvez le faire en envoyant la commande à grep.
Quelles sont les options les plus courantes utilisées avec grep ?
L’une des options les plus courantes de grep est -i, qui ignore la sensibilité à la casse dans votre requête de recherche. Une autre option populaire est -r, qui vous permet de rechercher tous les fichiers et dossiers d’un répertoire.
Puis-je rechercher un motif dans plusieurs fichiers ou répertoires à l’aide de grep ?
Oui, vous pouvez rechercher un mot clé dans plusieurs fichiers ou répertoires en les listant. Entrez grep motif fichier1.txt fichier2.txt pour rechercher un motif dans des fichiers. Pour rechercher des mots-clés dans plusieurs répertoires, utilisez l’option -r suivie du chemin d’accès à leur parent.
Comment rechercher les lignes qui ne correspondent pas à un motif ?
Pour imprimer les lignes qui ne correspondent pas à un motif, ajoutez l’option -v à votre commande grep. Elle activera la fonctionnalité de recherche inverse, en affichant toutes les entrées d’un fichier qui ne contient pas le mot-clé.
Commentaires
June 29 2022
commande-grep-sous-linux : Je débute et je suis tombé sur cet article. Surprise, la commande citée en exemple : "Grep -h" ne fonctionne pas (je répète : je débute) J'ai trouvé la soluton plus loin et vous pourriez corriger (?) il faut :"Grep --h" That's all folks !
June 30 2022
Bonjour Sergio et merci pour votre commentaire :D Je n'ai pas pu trouver la commande grep -h que vous avez cité, est-ce que vous voulez dire grep --help, si oui vous avez raison, il faut (--) avant help