Magazine High tech

grep, egrep, fgrep - Afficher les lignes correspondant à un motif donné.

Publié le 11 juillet 2017 par Jozef
GREP(1)           Manuel de l'utilisateur Linux           GREP(1)
NOM
grep, egrep, fgrep - Afficher les lignes correspondant à
un motif donné.
SYNOPSIS
grep [ -[[AB] ]num ] [ -[CEFGVBchilnsvwx] ] [ -e ] motif |
-ffichier ] [ fichiers... ]
DESCRIPTION
Grep Recherche dans les fichiers d'entrée indiqués les
lignes correspondant à un certain motif.
Si aucun fichier n'est fourni, ou si le nom `-' est men­
tionné, la lecture se fait depuis l'entrée standard.
Par défaut, grep affiche les lignes correspondant au
motif.
Il existe trois variantes principales de grep, controlées
par les options suivantes.
-G Interprète le motif comme une expression régulière
simple (voir plus bas). C'est le comportement par
défaut.
-E Interprète le motif comme une expression régulière
étendue (voir plus bas).
-F Interprète le motif comme une liste de chaînes
figées, séparées par des Sauts de Lignes (NewLine).
La correspondance est faite avec n'importe laquelle
de ces chaînes.
De plus, il existe deux variantes du programme : egrep et
fgrep. Egrep est similaire (sans être identique) à
grep -E, et est compatible avec les versions UNIX his­
toriques de egrep. Fgrep est identique à grep -F.
Toutes les variantes de grep acceptent les options suiv­
antes :
-num Les correspondances seront affichées avec num
lignes supplémentaires avant et après. Néanmoins,
grep n'affichera jamais une ligne plus d'une fois.
-A num Afficher num lignes supplémentaires après la ligne
correspondante.
-B num Afficher num lignes supplémentaires avant la ligne
correspondante.
-C est équivalent à -2.
-V Afficher le numéro de version de grep sur la sortie
d'erreur standard. Ce numéro de version devra être
inclus dans tous les rapports de bugs (voir plus
bas).
-b Avant chaque ligne, afficher son décalage (en
octet) au sein du fichier d'entrée.
-c Ne pas afficher les résultats normaux. A la place,
afficher un compte des lignes correspondantes pour
FSF 15 Janvier 1997 1
GREP(1) Manuel de l'utilisateur Linux GREP(1)
chaque fichier d'entrée. Avec l'option -v (voir
plus bas), afficher les nombres de lignes ne corre­
spondant pas au motif.
-e motif
Utiliser le motif indiqué. Ceci permet de protéger
les motifs commençant par -.
-f fichier
Lire le motif dans le fichier indiqué.
-h Ne pas afficher le nom des fichiers dans les résul­
tats lorsque plusieurs fichiers sont parcourus.
-i Ignorer les différences majuscules/minuscules aussi
bien dans le motif que dans les fichiers d'entrée.
([NDT] Comme toujours, ceci ne fonctionne pas avec
les caractères accentués...)
-L Ne pas afficher les résultats normaux. A la place,
indiquer le nom des fichiers pour lesquels aucun
résultat n'aurait été affiché.
-l Ne pas afficher les résultats normaux. A la place,
indiquer le nom des fichiers pour lesquels des
résultats auraient été affiches.
-n Ajouter à chaque ligne de sortie un préfixe con­
tenant son numéro dans le fichier d'entrée.
-q Silence. Ne pas afficher les résultats normaux.
-s Ne pas afficher les messages d'erreurs concernant
les fichiers inexistants ou illisibles.
-v Inverser la mise en correspondance, pour sélection­
ner les lignes ne correspondant pas au motif.
-w Ne sélectionner que les lignes contenant une corre­
spondance formant un mot complet. La sous-chaîne
correspondante doit donc être soit au début de la
ligne, soit précédée d'un caractère n'appartenant
pas à un mot. De même elle doit se trouver soit à
la fin de la ligne, soit être suivie par un car­
actère n'appartenant pas à un mot. Les caractères
composants les mots sont les lettres, les chiffres
et le souligné (`_'). ([NDT] Bien entendu les
minuscules accentuées ne sont pas des lettres !
elles servent donc à séparer les mots...)
-x Ne sélectionner que les correspondances qui occu­
pent une ligne entière.
EXPRESSIONS RÉGULIÈRES
Une expression régulière est un motif qui permet de
décrire un ensemble de chaînes. Les expressions régulières
sont construites comme des opérations arithmétiques, en
utilisant des opérateurs divers pour combiner des expres­
sions plus petites.
Grep comprend deux versions différentes pour la syntaxe
des expressions régulières : ``simple'' et ``étendue.''
Dans la version GNU de grep, il n'y a pas de différence
dans les fonctionnalités disponibles en utilisant l'une ou
l'autre des syntaxes. Dans d'autres implémentations, les
expressions régulières simples sont moins puissantes. La
FSF 15 Janvier 1997 2
GREP(1) Manuel de l'utilisateur Linux GREP(1)
description ci-dessous correspond aux expressions éten­
dues, les différences avec les expressions simples étant
résumées ensuite.
Les briques élémentaires sont les expressions régulières
correspondant à un simple caractère. La plupart des car­
actères, y compris toutes les lettres et les chiffres,
sont des expressions régulières se correspondant à eux-
mêmes. Tout méta-caractère ayant une signification
spéciale doit être protégé en le faisant précéder d'un
BackSlash.
Une liste de caractères, encadrée par [ et ] peut être
mise en correspondance avec n'importe quel caractère
unique appartenant à la liste. Si le premier caractère de
la liste est l'accent circonflexe ^ alors la mise en cor­
respondance se fait avec n'importe quel caractère absent
de la liste. Par exemple, l'expression régulière
[0123456789] convient pour n'importe quel chifre unique.
Un intervalle de caractères ASCII peut être indiqué en
donnant le premier et le dernier caractère séparés par un
tiret.
Finalement il existe certaines classes de caractères
prédéfinies. Leurs noms sont assez explicites :
[:alnum:], [:alpha:], [:cntrl:], [:digit:] (chiffres),
[:graph:], [:lower:] (minuscules), [:print:] (affich­
ables), [:punct:], [:space:], [:upper:] (majuscules), et
[:xdigit:] (chiffres héxadécimaux). par exemple,
[[:alnum:]] correspond à [0-9A-Za-z], à la différence que
le dernier dépend de l'encodage ASCII, alors que le pre­
mier est plus portable. Remarquez que les crochets dans
les noms de classes font partie intégrante du nom symbol­
ique, et qu'ils doivent donc être inclus en plus des cro­
chets encadrant la liste. La plupart des méta-caractères
perdent leurs significations spéciales au sein des listes.
Pour inclure un ] littéral, mettez-le en premier dans la
liste. De même, pour inclure un ^ littéral, placez-le
n'importe ou sauf au début de la liste. Enfin, pour
inclure un - placez-le en dernier.
Le point . correspond à n'importe quel caractère unique.
Le symbole \w est un synonyme de [[:alnum:]] et \W un syn­
onyme de [^[:alnum]].
L'accent circonflexe ^ et le symbole dollar $ sont des
méta-caratères correspondant respectivement à une chaîne
vide au début et en fin de ligne. Les symboles \< et \>
correspondent respectivement à une chaîne vide en début et
en fin de mot. Le symbole \b correspond à une chaîne vide
à l'extrémité d'un mot, et \B correspond à une chaîne vide
ne se trouvant pas à une extrémité de mot.
FSF 15 Janvier 1997 3
GREP(1) Manuel de l'utilisateur Linux GREP(1)
Une expression régulière correspondant à un caractère
unique peut être suivie par l'un des opérateurs de
répétition suivants :
? L'élément précédent est facultatif et doit être mis
en correspondance une fois au maximum.
* L'élément précédent doit être mis en correspondance
zéro ou plusieurs fois.
+ L'élément précédent doit être mis en correspondance
au moins une fois.
{n} L'élément précédent doit être mis en correspondance
exactement n fois.
{n,} L'élément précédent doit être mis en correspondance
n fois ou plus.
{,m} L'élément précédent est facultatif et doit être mis
en correspondance m fois au plus.
{n,m} L'élément précédent doit être mis en correspondance
au moins n fois, mais au plus m fois.
Deux expressions régulières peuvent être juxtaposées,
l'expression en résultant correspondra à toute chaîne
formée par la juxtaposition de deux sous-chaînes corre­
spondant respectivement aux deux sous-expression.
Deux expressions régulières peuvent être reliées par
l'opérateur infixe |; l'expression résultante correspondra
à toute chaîne correspondant à l'une ou l'autre des deux
sous-expressions.
Les répétitions ont priorité sur les juxtapositions, qui à
leur tour ont priorité sur les alternatives. Une sous-
expression peut être entourée par des parenthèses pour
modifier ces règles de précédence.
La référence inverse \n, ou n est un chiffre, correspond à
la sous-chaîne déjà mise en correspondance avec la nième
sous-expression régulière entre parenthèses.
Dans les expressions régulières simples, les méta-car­
actères ?, +, {, |, (, et ) perdent leurs significations
spéciales, il faut utiliser à la place leurs versions avec
BackSlash \?, \+, \{, \|, \(, et \).
Dans egrep le méta-caractère { perd sa signification
spéciale, il faut utiliser \{ à la place.
DIAGNOSTIQUE
Normalement, le code de retour est 0 si des correspon­
dances ont été trouvées, et 1 si aucune correspondance n'a
été faite. L'option -v inverse le sens du code de retour.
Le code de retour correspond à des erreurs de syntaxe dans
le motif, des fichiers d'entrée inaccessibles, ou d'autres
erreurs système.
FSF 15 Janvier 1997 4
GREP(1) Manuel de l'utilisateur Linux GREP(1)
BUGS
Envoyez les rapports de bug ([NDT] en anglais !) à bug-
[email protected]. Assurez-vous d'inclure le mot
``grep'' quelque part dans le champ ``Subject:''.
Dans les constructions {m,n} de grandes valeurs de
répétition peuvent pousser grep à utiliser beaucoup de
mémoire. De plus, certaines autres expressions régulières
obscures peuvent prendre un temps exponentiellement long,
et mener à un manque de mémoire.
Les références inverses sont très lentes et peuvent néces­
siter un temps exponentiellement long.
TRADUCTION
Christophe Blaess, 1997.
grep,  egrep,  fgrep - Afficher les lignes correspondant à un motif donné.
  
      
      
      
      
      
	   
	  

Retour à La Une de Logo Paperblog

A propos de l’auteur


Jozef 38 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte