Egrep
| Fiche express | |
|---|---|
| Domaine | Recherche de motifs (expressions régulières étendues) |
| Commande | egrep (historique) / grep -E (recommandée)
|
| Contexte | Alias historique de grep -E, déprécié par GNU grep
|
| Voir aussi | Grep (BRE/ERE/PCRE, options communes) |
egrep est l'alias historique de grep -E : il active les expressions régulières étendues (ERE — alternance |, quantificateurs +/?/{n,m} sans avoir besoin de les échapper), là où grep seul n'accepte que la syntaxe de base (BRE). De la même façon, fgrep était l'alias historique de grep -F (recherche de chaîne littérale, sans interprétation d'expression régulière).
⚠️ egrep et fgrep sont dépréciés par GNU grep depuis plusieurs années au profit des formes explicites grep -E et grep -F. Sur un système à jour, exécuter egrep peut afficher un avertissement du type egrep: warning: egrep is obsolescent; using grep -E, et certaines distributions récentes ne fournissent plus du tout les binaires egrep/fgrep (paquets minimalistes, environnements conteneurisés). Il vaut donc mieux prendre directement l'habitude d'écrire grep -E/grep -F plutôt que de compter sur ces alias.
Alternance de motifs
En ERE, l'alternance | s'utilise directement sans échappement (contrairement au BRE de grep qui demanderait \|) :
# forme recommandée
ifconfig | grep -E 'lo|eth'
# forme historique équivalente
ifconfig | egrep 'lo|eth'
Motif binaire (lignes composées uniquement de 0 et de 1, suivies d'un mot) :
grep -E '^(0|1)+ [a-zA-Z]+$' searchfile.txt
Comptage de lignes correspondant à un motif (option -c, commune à toute la famille grep) :
grep -Ec '^1|01$' lots_o_bits
Recherche d'une adresse IP
Motif approximatif (ne valide pas que chaque octet reste ≤ 255, mais suffisant pour repérer rapidement des adresses IPv4 dans un fichier de logs) :
grep -E '([0-9]{1,3}\.){1,3}[0-9]{1,3}' fichier.txt
Filtrer les lignes vides et les commentaires
Combinaison très courante pour ne garder que les lignes utiles d'un fichier de configuration, en inversant la correspondance avec -v :
cat /etc/snmp/snmpd.conf | grep -Ev '^#|^$'
Voir aussi
- Grep — expressions régulières de base (BRE) vs étendues (ERE) vs Perl (PCRE), et l'ensemble des options communes à toute la famille grep