|
grattage gratuit
loterie gratuite
casino gratuit
quizz gratuit
pari gratuit
jeu de pronostic
tirage au sort
jeux de hasard
tombola gratuite
jeux en flash
jeu en réseau
jeu de stratégie
jeux TV
multi jeux
concours gratuit
|
grep voir
les exemples
La commande grep permet
de rechercher du texte dans un fichier. Ses nombreuses
options permettent d'effectuer des recherches complexes
portant sur des chaînes spécifiques ou correspondant
à des critères multiples. Il est possible
d'utiliser les métacaractères ainsi que
de définir des classes de caractères. Il
est nécessaire d'indiquer le fichier sur lequel
la recherche doit porter. La syntaxe la plus simple de
la commande grep est la suivante :
grep
chaîne
fichier(s)
Si grep effectue la recherche dans
un seul fichier, les lignes dans lesquelles la chaîne
est trouvée sont affichées. Si la recherche
est effectuée dans plusieurs fichiers, les noms
des fichiers concernés sont également affichés.
Dans la chaîne recherchée,
un point (.) correspond à n'importe quel caractère,
comme le point d'interrogation utilisé pour les
noms de ficniers. Par exemple, grep . s liste
trouve toutes les lignes dans lesquelles la lettre
s est précédée d'un caractère
quelconque.L'équivalent de l'astérisque
dans les recherches de noms de fichiers est un point suivi
d'un astérisque (. *). Ainsi, grep 'linu.
*' fichier.txt trouve tous les mots du fichier
lettre contenant la lettre linu. Notez
que les lettres linu et le caractère * doivent
être placés entre apostrophes.
Un accent circonflexe (^) indique
que la chaîne recherchée doit se trouver
en début de ligne. La commande grep ^c trouve toutes
les lignes commençant par la lettre c. De la même
façon, le caractère [cr@localhost /cr]# indique que la chaîne
doit se trouver en fin de ligne. La commande grep s[cr@localhost /cr]# doc.txt
trouve toutes les lignes du fichier doc.txt se terminant
par la lettre s. La commande grep -c[cr@localhost /cr]# liste trouve toutes
les lignes ne comportant que la lettre c pour seul caractère.
Le principe est la définition de motifs de recherche
et la combinaison de ceux-ci pour exprimer des conditions
complexes. (caractères joker, duplication, négation,
relation OU, choix multiple, ...).
Voir ci-dessous une liste d'exemples expliqués.
Le flot d'entrée signifie : une ligne du fichier
d'entrée. Bien entendu, tous les motifs peuvent
être combinés à loisir.
Types d'expressions régulières
abc La chaîne de caractères abc, n'importe
où dans le flot d'entrée
a.c La lettre a séparée de la lettre c par
n'importe quoi, n'importe où dans le flot d'entrée
^abc La chaîne abc au début d'une ligne du
flot d'entrée
abc[cr@localhost /cr]# La chaîne abc à la fin d'une ligne du
flot d'entrée
[abc] Une des lettres a, b ou c, n'importe où dans
le flot d'entrée
[^abc] Aucune des lettres a, b ou c, n'importe où
dans le flot d'entrée
[a-f] Une des lettres a, b, c, d, e ou f, n'importe où
dans le flot d'entrée
ABC | XYZ Une des chaînes ABC ou XYZ, n'importe
où dans le flot d'entrée
[:digit:] Motif spécial, équivalent de [0123456789]
: un chiffre, n'importe où dans le flot d'entrée
(ab){3}c La chaîne ab, multipliée 3 fois,
suivie de la lettre c, n'importe où dans le flot
d'entrée, équivalent de abababc
[A-Z][:digit:] Une lettre majuscule, suivie d'un chiffre,
n'importe où dans le flot d'entrée.
Les plus utiles de ces options
sont :Option signification-v Affichage des lignes ne contenant pas la chaîne indiquée. -l Affichage uniquement du nom
des fichiers contenant la chaîne recherchée.
Les lignes ne sont pas affichées.
-c Affichage du nombre de lignes contenant la chaîne recherchée.
Si plusieurs fichiers sont concernés, grep affiche le nom de chaque
fichier suivi du nombre de lignes contenant la chaîne.
Options significations
^ Début d'une ligne
° N'importe quel caractère.
[] N'importe quel caractère se trouvant dans la liste
entre crochets.
[^] N'importe quel caractère
à l'exception de ceux figurant dans la liste entre
crochets.
* Le caractère ou l'expression
précédent
.* N'importe quels caractères.
\ le caractère suivant est traité comme
une caractère normal et nom comme un métacaractère.
# Fin d'une ligne de texte.
Cette liste n'est pas exhaustive : on peut la compléter
en lisant l'aide de grep ou d'un autre outil utilisant
les expressions régulières.
Exemples
:
[cr@localhost Documents]$ cat fichier3.txt
bellecellebelaelle
sellellelleselle
c1c2c3c4c
d1d2d3d4d
cdcdccdcd
la selle de belle
aedreaxya
aedrecdcd
[cr@localhost Documents]$
grep [as]elle fichier3.txt recherche les occurrences
aelle et selle.
[cr@localhost Documents]$ grep [as]elle
fichier3.txt
bellecellebelaelle
sellellelleselle
la selle de belle
[cr@localhost Documents]$
[cr@localhost Documents]$ cat fichier3.txt
aelle
belle
celle
delle
selle
pelle
relle
melle
[cr@localhost Documents]$
grep [as]elle fichier3.txt recherche les occurrences
aelle et selle
[cr@localhost Documents]$ grep [as]elle
fichier3.txt
aelle
selle
[cr@localhost Documents]$
grep [a-d]elle fichier3.txt recherche les occurrences
aelle,belle,celle et delle
[cr@localhost Documents]$ grep [a-d]elle
fichier3.txt
aelle
belle
celle
delle
grep [a-d,s]elle fichier3.txt recherche les occurrences
aelle,belle,celle,delle et selle
[cr@localhost Documents]$ grep [a-d,s]elle
fichier3.txt
aelle
belle
celle
delle
selle
[cr@localhost Documents]$
[cr@localhost Documents]$ cat fichier3.txt
aelle aelle
belle belle
celle celle
belle delle
selle selle
belle pelle
belle relle
melle melle
[cr@localhost Documents]$
Renvoie les lignes contenant une chaîne terminée
par elle et dont le dernier mot mot ne commence pas par
b.
[cr@localhost Documents]$ cat fichier3.txt
aelle aelle
selle belle
celle celle
belle delle
selle belle
belle pelle
relle belle
melle melle
[cr@localhost Documents]$
Renvoie les lignes contenant une chaîne terminée
par elle et qui ne commence pas par belle.
[cr@localhost Documents]$ grep [^b]elle
fichier3.txt
aelle aelle
selle belle
celle celle
belle delle
selle belle
belle pelle
relle belle
melle melle
[cr@localhost Documents]$
[cr@localhost Documents]$ grep [^b-c]elle
fichier3.txt
aelle aelle
selle belle
belle delle
selle belle
belle pelle
relle belle
melle melle
[cr@localhost Documents]$
[cr@localhost Documents]$ cat fichier4.txt
a.b[1]= vrai
b.a[1]= faux
c.b[0]= vrai
a.b[2]= faux
a.b[0]= vrai
a.b.c.d
a=b=c=d
a-b-c-d
a*b*c*d
[cr@localhost Documents]$
La sortie affichera les lignes commençant par
belle,ici il n'y a pas de crochets, dans ce cas ce n'est
pas une négation.
[cr@localhost Documents]$ grep ^belle
fichier4.txt
belle delle
belle pelle
[cr@localhost Documents]$
Il peut y avoir des caractère particuliers du
type : , ; [,],\=, dans ce cas il faut les précéder
du caractère \.Ces caractères doivent être
précédés de l'anti-slash ("\")
obligatoire pour éliminer leur propriété
de substitution.
Cest-à-dire qu'il ne soit pas interprèter
mais considérer comme de simple un caractère.
[cr@localhost Documents]$ grep "a\.b"
fichier4.txt
a.b[1]= vrai
a.b[2]= faux
a.b[0]= vrai
a.b.c.d
Sans l'antislash ! attention ! le point remplace alors
un caractère quelconque !
[cr@localhost Documents]$ grep "a.b"
fichier4.txt
a.b[1]= vrai
a.b[2]= faux
a.b[0]= vrai
a.b.c.d
a=b=c=d
a-b-c-d
a*b*c*d
[cr@localhost Documents]$
[cr@localhost Documents]$ grep "a.b["
fichier4.txt
grep: Invalid regular expression
[cr@localhost Documents]$ grep "a.b\["
fichier4.txt
a.b[1]= vrai
a.b[2]= faux
a.b[0]= vrai
[cr@localhost Documents]$
On cherche les chaines commançant par a. L'option
n pour numéroter les lignes
[cr@localhost Documents]$ grep -n '^a\.'
fichier3.txt
1:a.b[1]= vrai
4:a.b[2]= faux
5:a.b[0]= vrai
6:a.b.c.d
[cr@localhost Documents]
[cr@localhost Documents]$ cat fichier1.txt
a:b:c:d:e
a/b/c/d/e
a=b=c=d=e
a*b*c*d*e
a:b:c:d:e
[cr@localhost Documents]$ grep -n '^a.*$'
fichier1.txt
1:a:b:c:d:e
2:a/b/c/d/e
3:a=b=c=d=e
4:a*b*c*d*e
5:a:b:c:d:e
[cr@localhost Documents]$
Remarque : Les
caractères ! , $, ?, ., ; & et \ doivent être
précédés d'une barre oblique inverse
s'ils doivent être traités comme des caractères
ordinaires.
grep --help : pour avoir toutes les
options
|
|