EntreprioMÉDIA DES ENTREPRENEURS DIGITAUX Nous écrire
Menu

Accueil

/

Maîtriser la commande man grep pour lire le manuel sans se perdre

Apprends à lire la page de manuel de grep, à repérer les options utiles et à les tester avec des exemples concrets. Ouvre ton terminal et lance-toi.

Terminal affichant la page de manuel de grep sur un ordinateur portable posé sur un bureau
Sommaire

Quelle option grep pour votre besoin ?

Que voulez-vous obtenir de grep ?

Temps de lecture estimé : 6 minutes

Points clés à retenir

  • Dans man grep, cherche avec /motif, avance avec espace, quitte avec q
  • Priorise -i, -v, -n, -r, -o et -C parmi les options du manuel
  • Le motif se met entre guillemets, et -E active |, + et ?
  • grep -c compte les lignes ; pour les occurrences, utilise grep -o | wc -l
  • Codes de sortie : 0 match, 1 aucun match, 2 erreur

Afficher et lire la page de manuel avec la commande man grep

Tape man grep dans ton terminal, puis q pour quitter. La commande man grep ouvre la page de référence officielle de l’outil, et la vraie compétence consiste à la lire vite, pas à la lire en entier.

Je me souviens d’un soir à Lisbonne, en pleine panne de serveur, où j’ai scrollé cette page pendant dix minutes sans trouver ce que je cherchais. Depuis, j’applique toujours la même méthode de navigation.

Se déplacer et chercher dans la page

La page s’affiche dans un pager (en général less). Voici les touches qui m’évitent de me perdre :

  • Flèches haut/bas pour avancer ligne par ligne ;
  • Espace pour descendre d’un écran, b pour remonter ;
  • /motif puis Entrée pour chercher, n pour l’occurrence suivante, N pour la précédente ;
  • q pour quitter.

Exemple concret : tape /-n pour sauter directement à l’option qui affiche les numéros de ligne. Pour atteindre une section, cherche son titre, par exemple /OPTIONS.

La structure de la page

La page suit toujours le même plan : SYNOPSIS (la forme de la commande), DESCRIPTION, OPTIONS, EXPRESSIONS RATIONNELLES, puis CODE DE RETOUR. Dans mon usage, je file presque toujours à OPTIONS, et je ne descends vers les expressions rationnelles que si mon motif ne fonctionne pas.

Version française, version anglaise et alternatives

Plusieurs sites publient la page en français, mais ces traductions correspondent à des versions différentes de grep. Certaines options récentes peuvent donc y manquer. Vérifie ta version avec grep --version : la page man7.org, elle, correspond à GNU grep 3.12 (version du 21 mars 2025).

Pour un rappel express, grep --help affiche un résumé court des options, sans explication détaillée. info grep ouvre un manuel plus narratif, organisé en chapitres. Je réserve man aux vérifications précises et --help aux oublis de dernière seconde.

man grep : lire le manuel efficacement : Naviguer dans la page, Repérer la structure, Choisir la bonne source, Retenir les options clés, Maîtriser motifs et comptage, Lire les codes de sortie
Pour lire man grep sans se perdre : naviguer dans le pager, repérer les sections, retenir les options clés et interpréter les codes de sortie.
Ouvrir l’infographie en grand

La syntaxe de grep d’après le manuel

Le SYNOPSIS se résume à grep [options] motif [fichier...]. Sans fichier, grep lit l’entrée standard, ce qui permet de le brancher derrière un autre programme avec un pipe.

Le manuel mentionne aussi egrep, fgrep et rgrep. Ce sont des variantes historiques : je leur préfère grep -E (regex étendues), grep -F (texte littéral) et grep -r (récursif).

La différence entre regex basiques et étendues tient en une ligne. Sans -E, les symboles |, + et ? sont traités comme des caractères littéraux, ou doivent être échappés. C’est la cause numéro un des « ça ne marche pas » que mes auditrices et auditeurs me remontent.

Les options essentielles à retenir dans le manuel

La section OPTIONS est longue. Voici comment je la hiérarchise, du plus utile au plus occasionnel, avec l’exemple qui va avec.

Sélection et affichage

  • -i ignore la casse. Mon premier réflexe quand une recherche ne renvoie rien alors que le texte existe (pense aux niveaux de log ERROR et error) ;
  • -v inverse la sélection : grep -v "^#" fichier affiche les lignes qui ne sont pas des commentaires ;
  • -w cherche un mot entier, -x une ligne entière ;
  • -c compte les lignes qui correspondent ;
  • -l liste les fichiers qui contiennent le motif, -L ceux qui ne le contiennent pas ;
  • -o n’affiche que la partie qui correspond ;
  • -q n’affiche rien, utile dans les scripts.

Préfixes et contexte

-n préfixe chaque ligne de son numéro, qui commence à 1. -H force l’affichage du nom de fichier, -h le supprime. -b donne la position en octets, comptée à partir de l’octet 0.

Pour le contexte, -A 3 montre trois lignes après, -B 3 trois lignes avant, et -C 3 les deux. Quand je traque une erreur, -C me fait gagner un temps fou.

Fichiers et répertoires

-r parcourt un dossier récursivement, -R suit en plus les liens symboliques. Tu peux restreindre avec --include="*.py", --exclude et --exclude-dir=node_modules.

Les expressions rationnelles dans grep

Pas besoin de relire toute la théorie. Quatre notions suffisent dans 90 % de mes recherches.

  • Classes et crochets : [0-9] pour un chiffre, [aeiou] pour une voyelle ;
  • Quantificateurs : ? (0 ou 1), * (0 à n), + (1 à n), {n,m} (entre n et m) ;
  • Alternance et groupes avec -E : grep -E "erreur|warning" app.log ;
  • Échappement : pour chercher un point ou une étoile littéraux, échappe-les avec \, ou utilise -F pour tout traiter comme du texte.

Exemple pour repérer une adresse IPv4 : grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" fichier. Attention, ce motif simple ne vérifie pas que chaque nombre est inférieur ou égal à 255.

Des exemples concrets inspirés du manuel

Voici les quatre usages qui reviennent le plus dans ma pratique.

  • Filtrer des logs : grep -i -C 2 "timeout" app.log ;
  • Chercher dans un projet : grep -rn --include="*.js" --exclude-dir=node_modules "fetchUser" . ;
  • Exclure commentaires et lignes vides : grep -Ev "^(#|$)" config.conf ;
  • Enchaîner avec d’autres outils : grep -o "erreur" app.log | wc -l pour compter les occurrences, ou grep -rl "TODO" . | xargs wc -l.

Le dernier point mérite une précision. grep -c compte les lignes qui correspondent, pas les occurrences. Si le mot apparaît trois fois sur la même ligne, il sera compté une seule fois. Pour les occurrences réelles, passe par grep -o | wc -l.

Codes de retour, couleurs et variables d’environnement

La section CODE DE RETOUR est courte mais essentielle : 0 si une ligne au moins est sélectionnée, 1 si aucune ne l’est, et 2 en cas d’erreur.

C’est ce qui rend -q si pratique dans un script : if grep -q "ERROR" app.log; then echo "à vérifier"; fi. Rien ne s’affiche, seul le code de sortie compte.

Côté couleurs, la variable GREP_COLORS permet de les personnaliser. Sa valeur par défaut est ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 : correspondances en rouge, noms de fichiers en magenta, numéros de ligne en vert. Je ne touche à cette variable que si le rendu gêne ma lecture.

Erreurs fréquentes et alternatives

  • Motif sans guillemets : le shell interprète *, ?, | ou $ avant grep. Entoure toujours le motif de guillemets ;
  • Fichiers binaires : grep signale une correspondance sans afficher la ligne. Ajoute -a pour les traiter comme du texte ;
  • Regex étendue oubliée : |, + et ? demandent -E ;
  • Casse : pense à -i quand le résultat est vide.

Quand grep ne suffit plus, change d’outil. awk convient pour travailler par colonnes, sed pour remplacer du texte, et ripgrep pour une recherche très rapide dans de gros projets.

La première chose que je ferais à ta place : ouvre man grep, tape /-r, et teste chaque option sur un vrai fichier de logs. Dix minutes de pratique valent mieux qu’une heure de lecture.

Retiens la méthode plutôt que la liste : la commande man grep t’apprend à chercher, à repérer et à vérifier par toi-même.