Quelle est la différence entre Grep, Egrep et Fgrep sous Linux ?

L’un des outils de recherche renommés sur les systèmes de type Unix qui peut être utilisé pour rechercher n’importe quoi, qu’il s’agisse d’un fichier, d’une ligne ou de plusieurs lignes dans un fichier est grep utility. Il est très vaste dans les fonctionnalités qui peuvent être attribuées au grand nombre d’options qu’il prend en charge comme: recherche à l’aide d’un motif de chaîne, ou d’un motif reg-ex ou d’un reg-ex basé sur perl, etc.

Différence Entre grep, egrep et fgrep
Différence Entre grep, egrep et fgrep sous Linux

En raison de ses fonctionnalités variables, il a de nombreuses variantes, y compris grep , egrep (GREP étendu), fgrep (GREP fixe), pgrep (GREP de processus), rgrep (GREP récursif) etc. Mais ces variantes ont des différences mineures avec le grep original, ce qui les a rendues populaires et utilisées par divers programmeurs Linux pour des tâches spécifiques.

La principale chose qui reste à étudier est quelles sont les différences entre les trois variantes principales, à savoir ‘grep’, ‘egrep’ et ‘fgrep’ de grep qui oblige les utilisateurs de Linux à choisir l’une ou l’autre version selon les exigences.

Quelques Méta-Caractères spéciaux de grep

  1. + – Équivalent à une ou plusieurs occurrences de caractère précédent.
  2. ?– – Cela indique presque 1 répétition du caractère précédent. Comme: a? Correspondrait à ‘a‘ ou ‘aa’.
  3. (– – Début de l’expression d’alternance.
  4. )– – Fin de l’expression d’alternance.
  5. |– – Correspondant à l’une des expressions séparées par '|'. Comme: "(a|b)cde” correspondrait à ‘abcde’ ou ‘bbcde’.
  6. { – Ce méta-caractère indique le début du spécificateur de plage. Comme: "a{2}” correspond à « aa » dans le fichier, c’est-à-dire a 2 fois.
  7. } – Ce méta-caractère indique le spécificateur de fin de plage.

Différences entre grep, egrep et fgrep

Certaines différences principales entre grep, egrep et fgrep peuvent être mises en évidence comme suit. Pour cet ensemble d’exemples, nous supposons que le fichier sur lequel l’opération est effectuée doit être:

Commande grep Linux
Commande grep Linux

Commande Grep

grep ou Impression d’expression régulière globale est le programme de recherche principal sur les systèmes de type Unix qui peut rechercher n’importe quel type de chaîne sur n’importe quel fichier ou liste de fichiers ou même la sortie de n’importe quelle commande.

Lecture suggérée: 12 Exemples pratiques de commande grep Linux

Elle utilise des expressions régulières de base en dehors des chaînes normales comme motif de recherche. Dans les Expressions régulières de base (BRE), les méta-caractères comme: '{','}''(',')''|''+''?' perdent leur signification et sont traités comme des caractères normaux de chaîne et doivent être échappés s’ils doivent être traités comme des caractères spéciaux.

Lecture suggérée : 11 Commandes avancées ‘Grep’ sur les classes de caractères et les expressions entre crochets

De plus, grep utilise l’algorithme de Boyer-Moore pour rechercher rapidement n’importe quelle chaîne ou expression régulière.

$ grep -C 0 '(f|g)ile' check_file$ grep -C 0 '\(f\|g\)ile' check_file
Linux grep Command Example
Linux grep Command Example

Like here, when the command is run without escaping '(' ')' and '|' then it searched for the complete string i.e. "(f|g)ile” in the file. Mais lorsque les caractères spéciaux ont été échappés, au lieu de les traiter comme faisant partie d’une chaîne, grep les a traités comme des méta-caractères et a recherché les mots "file” ou "gile” dans le fichier.

Commande Egrep

Egrep ou grep-E est une autre version de grep ou du grep étendu. Cette version de grep est efficace et rapide lorsqu’il s’agit de rechercher un modèle d’expression régulière car elle traite les méta-caractères tels quels et ne les remplace pas par des chaînes comme dans grep, et vous êtes donc libéré du fardeau de les échapper comme dans grep. Il utilise ERE ou l’ensemble d’expressions régulières étendues.

Dans le cas d’egrep, même si vous n’échappez pas aux méta-caractères, il les traiterait comme des caractères spéciaux et les remplacerait par leur signification particulière au lieu de les traiter comme faisant partie d’une chaîne.

$ egrep -C 0 '(f|g)ile' check_file$ egrep -C 0 '\(f\|g\)ile' check_file
Exemples de commandes egrep Linux
Exemples de commandes egrep Linux

Comme ici, egrep a cherché une chaîne "file” lorsque les méta-caractères n’étaient pas échappés comme cela signifierait par la signification de ces caractères. Mais, lorsque ces caractères ont été échappés, egrep les a traités comme faisant partie de string et a recherché la chaîne complète "(f|g)ile” dans le fichier.

Commande fgrep

Fgrep ou le grep fixe ou grep-F est une autre version de grep qui est rapide dans la recherche lorsqu’il s’agit de rechercher la chaîne entière au lieu de l’expression régulière car elle ne reconnaît pas les expressions régulières, ni les méta-caractères. Pour rechercher une chaîne directe, c’est la version de grep qui doit être sélectionnée.

Fgrep recherche la chaîne complète et ne reconnaît même pas les caractères spéciaux dans l’expression régulière, même s’ils sont échappés ou non.

$ fgrep -C 0 '(f|g)ile' check_file$ fgrep -C 0 '\(f\|g\)ile' check_file
Exemples de commandes Linux fgrep
Exemples de commandes Linux fgrep

Comme, lorsque meta – les caractères n’étaient pas échappés, fgrep recherchait la chaîne complète "(f|g)ile” dans le fichier, et lorsque les méta-caractères étaient échappés, la commande fgrep recherchait "\(f\|g\)ile” tous les caractères tels quels dans le fichier.

Nous avons déjà couvert quelques exemples pratiques de commande grep, vous pouvez les lire ici, si vous voulez tirer le meilleur parti de la commande grep sous Linux.

Apprenez 12 Exemples pratiques de commande grep Linux

Conclusion

Les différences entre ‘grep’, ‘egrep’ et ‘fgrep’ sont soulignées Ci-dessus. Outre la différence dans l’ensemble des expressions régulières utilisées et la vitesse d’exécution, les paramètres de ligne de commande rest restent les mêmes pour les trois versions de grep et même au lieu de « egrep” ou « fgrep”, « grep-E” ou « grep-F” sont recommandés pour être utilisés.

Posted on

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.