#1 Le 01/05/2012, à 12:01
- inoune
[RESOLU] La commande grep et l'occurence
Bonjour!
J'aimerais savoir comment chercher, à l'aide de grep, l'occurence d'une lettre.
Je sais qu'il y a ces options:
x* zéro ou plus d'occurrences du caractère x
x+ une ou plus occurrences du caractère x
x? une occurrence unique du caractère x
\ {n\} pour définir le nombre de répétition n du caractère placé devant
{n,m}
Je ne sais pas comment les composer dans une commande, à part x* qui m'a bien marché
Celle-ci {n,m}, me parait bien utile, mais je ne sais pas pourquoi ça ne marche pas chez moi.
Donc si vous avez des exemples, ils seront les bienvenues.
Merci d'avance.
Dernière modification par inoune (Le 02/05/2012, à 23:55)
Hors ligne
#2 Le 01/05/2012, à 22:26
- kiks
Re : [RESOLU] La commande grep et l'occurence
L'exemple suivant répond-il à la question ?
$ cat exemple
aaabbbccc
abcabcabc
aabbccccbbaa
$ grep "a\{2\}" exemple
aaabbbccc
aabbccccbbaa
Hors ligne
#3 Le 01/05/2012, à 22:36
- aduxas
Re : [RESOLU] La commande grep et l'occurence
Il y a aussi
$ grep -E 'a{3,5}' exemple
aaabbbccc
Hors ligne
#4 Le 01/05/2012, à 22:39
- pingouinux
Re : [RESOLU] La commande grep et l'occurence
Bonsoir,
x? une occurrence unique du caractère x
En fait, c'est :
x? => zéro ou une occurrence du caractère x
Hors ligne
#5 Le 02/05/2012, à 19:57
- inoune
Re : [RESOLU] La commande grep et l'occurence
Merci à vous tous. J'ai quelques remarques et questions
@ kiks: Si j'ai compris, la commande: grep "a\{2\}" signifie que "a" apparait au moins 2 fois, non? Sinon, pourquoi, le mot "abcabcabc" ne s'affiche pas?
Et comment faire pour qu'il s'affiche? et merci.
@ aduxas: ça suppose que les 3 a sont regroupés, et si j'ai le mot: viabcdaplam ?
J'ai essayé avec la même commande, mais ça ne m'affiche rien.
@ pingouinux: J'ai essayé ceci: grep "f?" fichier (fichier contient le mot file), on doit bien m'afficher le mot "file" puisque f apparait une fois(une occurrence), non?
Et puis j'ai une petite question, comment rechercher un mot qui contient exactement 3 lettres "p".
J'ai essayé ceci: grep 'p{3,3}' fichier
Certes, ça marche pour les mots ou les 3p sont groupés comme ppptata mais pour le mot opdpsp, ça ne marche pas !
Merci encore une fois.
Hors ligne
#6 Le 02/05/2012, à 20:08
- pingouinux
Re : [RESOLU] La commande grep et l'occurence
$ grep -E 'f?' <<<"ddd file"
ddd file
# Au moins 3 p
grep -E "([^p]*p){3}" <<<"opdpspiip"
opdpspiip
# 3 p seulement
$ grep -E "^([^p]*p){3}[^p]*$" <<<"opdpspiip"
$ grep -E "^([^p]*p){3}[^p]*$" <<<"opdpspii"
opdpspii
Hors ligne
#7 Le 02/05/2012, à 20:26
- inoune
Re : [RESOLU] La commande grep et l'occurence
Merci !! T'es vraiment fort
J'avoue que c'est vraiment difficile à les réaliser (peut être pour niveau ). Parce que dans le manuel on ne trouve que les options, mais les astuces pour savoir les composer sont dures à trouver !
Voilà je te dis un grand merci, et aussi à tous les autres qui m'ont aidé
Hors ligne