Problème avec grep sous linux

dodie -  
jisisv Messages postés 3678 Statut Modérateur -
je viens de commencer à utiliser Linux et j'ai un problème avec la commande grep. Je dois trouver une expression régulière permettant de trouver tous les mots d'un texte possédant 99 occurences de a (c'est pas courant je sais mais c'est comment ça )
pour exactement trois occurences de a j'ai trouvé :
"[^a]*a[^a]*a*[^a]*a*[^a]*"
j'avais pensé à me servir de {99} mais ça implique que les lettres se suivent et ce n'est pas ce que je cherche.
Si vous pouvez m'aiguiller sur le réponse, merci d'avance.
A voir également:

3 réponses

M&M Messages postés 5058 Statut Contributeur 667
 
C''est comme Obélix, mais pas dans la marmitte. Tu as
dû tomber sur ta tête quand tu étais petit !
La réponse est non, il n'esiste pas de mot de plus de 99 caractères (anticonstitutionnellement) contenant 99 A!

L'expression régulière peut être aussi longue que tu le souhaites. je propose de remplacer le * par un + qui signifie une ou plusieures occurences. Ensuite, tu testes en fait une ligne et non un mot. Si tu veux un mot, il faut le délimiter par des espaces, des tab et des ' et ". Tu dois aussi bien évidemment considérer les ÁÀäαåæãáà
Ha ha ha
À bientôt, on se revoit le 1er avril ! OK ?
 :,§_ ç _
(@)=(@)
0
dodie
 
merci pour cette réponse, seulement ce n'est pas moi qui ai décidé de rechercher cette expression, ça vient de mon prof. je sais bien qu'il n'existe pas de mot à proprement parlé de 99 lettres, mais il est possible d'en créer, même si ils n'ont aucun sens. merci quand même
0
jisisv Messages postés 3678 Statut Modérateur 935
 
Extrait de man egrep:

A regular expression may be followed by one of several repetition operators:
? The preceding item is optional and matched at most once.
* The preceding item will be matched zero or more times.
+ The preceding item will be matched one or more times.
{n} The preceding item is matched exactly n times.
{n,} The preceding item is matched n or more times.
{n,m} The preceding item is matched at least n times, but not more than m times.

Essaye qqchose du genre

egrep "(a[^a]*){99,99}" < inputfile

J'ai testé avec 3 occurences...
Cela semble correct mais à toi à vérifier tous les cas de figure...

Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0