Commande Linux · 3 min read · Sep 14, 2025
Tutoriel sur la commande fgrep de Linux pour les débutants (avec des exemples)
Bien que grep soit une commande Linux bien connue (nous l’avons déjà couverte en détail), savez-vous qu’il existe deux variantes différentes de cet outil ? Oui, ce sont egrep et fgrep. Dans ce tutoriel, nous allons discuter de cette dernière (fgrep) à l’aide d’exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples et instructions mentionnés dans ce tutoriel ont été testés sur Ubuntu 16.04LTS.
Commande fgrep de Linux
Si vous jetez un œil à la documentation officielle, la page de manuel de la commande grep indique que fgrep n’est rien d’autre que grep -F. Elle dit également que des variantes comme fgrep et egrep ne sont fournies que pour des raisons de compatibilité descendante. Nous aborderons ces détails plus tard dans ce tutoriel.
En attendant, voici la syntaxe de fgrep (qui est la même que celle de grep) :
grep [OPTIONS] PATTERN [FILE...]Et voici comment la page de manuel de la commande grep explique l’outil :
grep recherche dans les fichiers d'entrée nommés les lignes contenant une correspondance avec le PATTERN donné. Si aucun fichier n'est spécifié, ou si le fichier "-" est donné, grep recherche dans l'entrée standard. Par défaut, grep imprime les lignes correspondantes.Les exemples suivants au format Q&R devraient vous donner une meilleure idée de la façon dont fgrep fonctionne.
Q1. En quoi fgrep est-il différent de grep et egrep ?
La commande fgrep diffère à la fois de grep et d’egrep en ce sens qu’elle interprète PATTERN comme une liste de chaînes fixes (au lieu d’expressions régulières), séparées par des sauts de ligne.
Puisqu’il est dit que c’est la même chose que grep -F, voici comment un expert a expliqué l’option -F de grep sur StackExchange :
Le commutateur `-F` change grep en un mode différent où il accepte un motif à correspondre, mais ensuite le divise en une chaîne de recherche par ligne et effectue une recherche OR sur chacune des chaînes sans effectuer de correspondance de motif spéciale.Q2. Comment utiliser fgrep ?
Pour comprendre l’utilisation de fgrep, prenons d’abord un exemple de base. Supposons qu’il y ait un fichier (file1) qui contient le contenu suivant :

Et il y a un autre fichier (words.txt) qui contient une liste de mots que nous voulons rechercher dans file1.

Voici comment vous pouvez utiliser fgrep pour effectuer cette recherche :
fgrep -f words.txt file1
Vous pouvez voir que les mots trouvés ont été mis en surbrillance en rouge. Maintenant, certains d’entre vous peuvent argumenter que c’est ce que grep et egrep feraient également dans ce cas, alors en quoi fgrep diffère-t-il ?
Tout d’abord, oui, vous avez raison. Les commandes grep et egrep produiraient également une sortie similaire :

Mais la différence sera claire si file1 et words.txt contiennent les contenus suivants (observez les caractères spéciaux dans les mots) :

Ici, egrep et grep échoueront à trouver tous les mots :

Mais fgrep fonctionnera comme prévu :

Q3. N’y a-t-il vraiment aucune différence entre fgrep et grep ?
D’après la documentation officielle, il n’y a aucune différence entre fgrep et la commande grep -F. Cependant, il y aurait apparemment une différence majeure entre les deux outils : l’algorithme de correspondance de chaînes qu’ils utilisent. Alors que fgrep utilise l’algorithme d’Aho-Corasick, grep utilise une version modifiée de Commentz-Walter.
“Cela signifie que grep a une complexité dans le pire des cas de O(mn) tandis que fgrep est au pire O(m+n),” dit un expert sur les forums StackExchange.
Conclusion
Comme il est évident, la commande fgrep n’est pas difficile à comprendre et à utiliser. Quant à la différence entre fgrep et grep -F, bien que nous ayons déjà noté les points dans Q3, nous pensons que cette question ne devrait pas déranger une grande partie des utilisateurs. Si vous avez des doutes ou une question liée à fgrep, partagez-la avec nous en laissant un commentaire ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.