grep => Différence entre grep, egrep, fgrep, pgrep. (2024)

Introduction

grep , egrep , fgrep , rgrep , pgrep - sont des commandes dans des systèmes d'exploitation de type Unix qui impriment des lignes correspondant à un modèle. Le grep recherche les FICHIERS d' entrée nommés pour les lignes contenant une correspondance avec le PATTERN donné. Par défaut, il imprime les lignes correspondantes. En outre, les programmes de variantes egrep , fgrep et rgrep sont identiques à grep -E , grep -F et grep -r respectivement. Ces variantes sont obsolètes, mais sont fournies pour compatibilité avec les versions antérieures.

Syntaxe

  • grep [OPTIONS] PATTERN [FILE...]

  • grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]

Paramètres

symbole Détails Expressions régulières de base (BRE)
^ le circonflexe est utilisé pour faire correspondre le début d'une ligne.
$ utilisé pour correspondre à la fin d'une ligne.
. correspond à n'importe quel caractère sauf une nouvelle ligne.
[] correspond à un caractère unique entre crochets. S'il y a un ^ intérieur, cela correspondrait à tout sauf aux caractères du crochet.
\ avant que l'un des caractères non alphanumériques les cite.
* Le symbole correspond au caractère précédent ou à la sous-expression zéro, une ou plusieurs fois.
\1 Les références 1 à 9 correspondent au texte exact du groupe correspondant.
\{m,n\} correspond aux éléments précédents au moins m et pas plus de n fois.
\| foo\|bar correspond à foo ou à bar.
\? court pour {0,1}
\+ (court pour {1,} ) correspond au caractère ou à la sous-expression précédent au maximum 1 fois, ou au moins 1 fois respectivement.
\n correspond à une nouvelle ligne, \t correspond à un onglet, etc.
\w correspond à n'importe quel composant de mot et \ W correspond à tout caractère qui n'est pas un constituant de mot.
\<\> faire correspondre la chaîne vide uniquement au début ou à la fin d'un mot
\b correspond à l'un ou l'autre et \ B correspond où \ b ne le fait pas.
symbole Détails Expressions régulières étendues (ERE)
^ ne correspond qu'au début
$ ne correspond qu'à la fin d'une ligne.
. correspond à n'importe quel caractère (ou n'importe quel caractère sauf une nouvelle ligne).
[…] correspond à n'importe quel caractère figurant entre crochets (jeu de caractères). Ajoutez un initial ^ et range le travail comme dans BRE (voir ci-dessus).
(…) groupe syntaxique, à utiliser avec les remplacements * ou \ DIGIT.
\| pour l'alternance: foo | bar correspond à foo ou bar.
* correspond au caractère ou à la sous-expression précédent plusieurs fois: 0, 1 ou plusieurs fois
+ correspond à une ou plusieurs fois le caractère précédent.
? correspond aux caractères précédents 0 ou 1 fois.
\ La barre oblique inverse cite le caractère suivant s'il n'est pas alphanumérique.
{m,n} correspond au caractère précédent ou à la sous-expression entre m et n fois (manquant dans certaines implémentations); n ou m peut être omis et {m} signifie exactement m

Remarques

fgrep signifie "Fixed-string Global Regular Expressions Print". fgrep est le même que grep -F . Cette commande est un grep plus rapide et se comporte comme grep mais ne reconnaît PAS les méta-caractères d'une expression régulière comme étant spéciaux. La recherche sera plus rapide car elle ne traite qu'une chaîne simple plutôt qu'un modèle complexe.

pgrep est l'acronyme de "Process-ID Global Regular Expressions Print". pgrep examine les processus en cours d'exécution et répertorie les ID de processus qui correspondent aux critères de sélection à la sortie standard. pgrep est pratique lorsque tout ce que vous voulez savoir est le processus id entier d'un processus.

grep egrep (grep -E) fgrep (grep -F) pgrep
Expressions régulières de base (BRE) Expressions régulières étendues (ERE) Ne recherche que les chaînes Processus de recherche par nom

Pour plus d'informations et de références, utilisez les liens suivants:

Quelle est la différence entre grep, egrep et fgrep? Unix & Linux StackExchange

Pourquoi mon expression régulière fonctionne-t-elle en X mais pas en Y? Unix & Linux StackExchange

Quelle est la différence entre grep, pgrep, egrep, fgrep? Superutilisateur

grep avec les expressions régulières de base

$ grep root /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin

egrep avec des expressions régulières étendues

$ egrep '^(0|1)+ [a-zA-Z]+$' searchfile.txt011 AaBBS

fgrep sans expressions régulières

$ fgrep "." .bashrc# will match lines with a dot.

pgrep avec le nom du processus

$ pgrep python1299

Modified text is an extract of the original Stack Overflow Documentation

Sous licence CC BY-SA 3.0

Non affilié à Stack Overflow

grep => Différence entre grep, egrep, fgrep, pgrep. (2024)

References

Top Articles
Latest Posts
Article information

Author: Ray Christiansen

Last Updated:

Views: 5642

Rating: 4.9 / 5 (49 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Ray Christiansen

Birthday: 1998-05-04

Address: Apt. 814 34339 Sauer Islands, Hirtheville, GA 02446-8771

Phone: +337636892828

Job: Lead Hospitality Designer

Hobby: Urban exploration, Tai chi, Lockpicking, Fashion, Gunsmithing, Pottery, Geocaching

Introduction: My name is Ray Christiansen, I am a fair, good, cute, gentle, vast, glamorous, excited person who loves writing and wants to share my knowledge and understanding with you.