Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

grep, egrep, fgrep, rgrep : Quelles sont les différences

L’un des outils de recherche renommés sur des systèmes de type UNIX pouvant être utilisé pour rechercher n’importe quoi que ce soit un fichier ou une ligne ou plusieurs lignes dans le fichier est l’utilitaire Grep.
Il est très vaste dans la fonctionnalité qui peut être attribuée au grand nombre d’options qu’il prend en charge : la recherche à l’aide de modèle de chaîne ou de modèle REG-EX ou de REG-EX à base de PERL, etc.

Mais vous avez pu remarquer qu’il existe de nombreuses déclinaisons comme grep, egrep, fgrep et même regrep.
Pourquoi tout ces versions de grep et surtout quelles sont les différences ?

Dans ce tutoriel, je vous explique toutes les différences entre grep, egrep, fgrep, rgrep.

grep, egrep, fgrep, rgrep : Quelles sont les différences

Qu’est-ce que grep

Grep est une utilitaire de ligne de commande dans les systèmes UNIX et Linux. Il est utilisé pour trouver des modèles de recherche dans le contenu d’un fichier donné.
Le nom vient de Global Regular Expression (Processor | Parser | Printer).

Il s’agit de la version standard de Grep conçue pour rechercher des modèles en utilisant des expressions de base régulières. L’utilisation de GREP nécessite une échappement de métacaractères pour produire le comportement attendu.

Comme le montre la capture d’écran ci-dessous, le résultat de grep est différent si vous encadrez les métacaractères.

grep "(e|f)grep" grep.txt
(e|f)grep

grep "\(e\|f\)grep" grep.txt
Ceci est un test pour grep, egrep, fgrep, rgrep
Qu'est-ce que grep sur Linux

Qu’est-ce que egrep

egrep est une autre version de grep.
Le E à egrep signifie extended regex pour utiliser les regex étendus.
On peut donc aussi le nommer extended grep.

Par défaut, la commande Grep fonctionne avec des expressions régulières de base. Si vous souhaitez une recherche plus complexe, vous devez utiliser les regex étendus.
La commande egrep permet d’utiliser de regex étendue.

Ainsi il traite des métacaractères tel quel et ne les substitue pas comme des caractères comme dans Grep, et vous êtes donc libéré du fardeau de les échapper comme à Grep. Il utilise ERE (Extended Regular Expression set) soit ‘ensemble d’expression régulier étendu.

De ce fait, pour effectuer une recherche avec des expressions régulières, vous n’avez pas besoin d’échapper les métacaractères.

egrep "(e|f)grep" grep.txt
Ceci est un test pour grep, egrep, fgrep, rgrep

egrep "\(e\|f\)grep" grep.txt
(e|f)grep
Qu'est-ce que egrep sur Linux

Qu’est-ce que fgrep

Voici une troisième version de la commande grep : fgrep.
Le F à fgrep signifie fixe et ne permet pas l’utilisation d’expression régulière.
Ainsi, elle ne reconnaît pas les expressions régulières, ni aucun métacaractères.
D’autre part fonctionne sur une chaîne fixe au lieu d’une regex et donc il est plus rapide.

Ci-dessous, on peut voir que même en encadrant les métacaractères fgrep ne trouve rien car il ne gère pas les expressions régulières.

fgrep "(e|f)grep" grep.txt
(e|f)grep

fgrep "\(e\|f\)grep" grep.txt
Qu'est-ce que fgrep sur Linux

Q’est-ce que rgrep

rgrep lit tous les fichiers sous chaque répertoire, récursivement, suivant des liens symboliques uniquement s’ils sont sur la ligne de commande.
De ce fait le nom donné est Recursive GREP.

grep, egrep, fgrep, rgrep : Quelles sont les différences

Bien que vous puissiez continuer à utiliser egrep, rgrep et fgrep, leur statut est obsolète (deprecated). De nombreux systèmes incluent toujours les fichiers binaires pour ces variantes.

Cependant, la norme POSIX indiquer d’utiliser la commande standard grep avec des options spéciaux (-E, -r ou -F).
Ces drapeaux de la commande grep émuler la fonctionnalité de chaque commande respective et vont remplacer à therme chacun des programmes.

Pour résumer :

  • egrep et fgrep sont des commandes obsolètes et doivent être évitées
  • egrep équivaut à la commande grep -E et permet d’utiliser une regex étendue
  • fgrep est équivalent à la commande grep -F et utilise une chaîne fixe pour la recherche et il effectue donc une recherche plus rapide
  • Enfin rgrep est un équivalent de la commande grep -r
grep, egrep, fgrep, rgrep : Quelles sont les différences
Paramètres de comparaison egrep (grep -E) Fgrep (grep -F)
Fonctionnement egrep prend son entrée de l’entrée standard, qui peut être réalisée en pipant le contenu d’un fichier à travers elle. fgrep prend son entrée à partir d’un fichier qui doit être spécifié dans un argument de ligne de commande.
Expressions régulières egrep emploie des expressions régulières étendues. fgrep emploie des expressions régulières non étendues.
Vitesse Vitesse lente. La plus haute vitesse.
Modes Il explore une chaîne ou une liste qui accumule plusieurs modes. Il n’explore pas de chaîne ou de liste qui accumule plusieurs modes.
Illustration $ egrep -E “5|[[:space:]]*5” ./file.txt. $ fgrep -F “5|[[:space:]]*5” ./file.txt.

L’article grep, egrep, fgrep, rgrep : Quelles sont les différences est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires