Problème avec grep sous linux
dodie
-
jisisv Messages postés 3678 Statut Modérateur -
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.
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:
- Problème avec grep sous linux
- Linux reader - Télécharger - Stockage
- R-linux - Télécharger - Sauvegarde
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
- Linux mint 22.1 - Accueil - Linux
3 réponses
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 ?
:,§_ ç _
(@)=(@)
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 ?
:,§_ ç _
(@)=(@)
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
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.
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.