Commande GREP (filtre)
Résolu
dkpiit
-
Dkpiit -
Dkpiit -
Bonjour,
étant étudiant et révisant pour les partiels , j'ai relu la correction d'un de mes DS de système quand je suis tombé sur une commande que je ne comprends pas
il s'agit de n'afficher que les lignes qui contiennent au moins 2 fois la lettre "a"
la correction dit : grep 'a[^a]*a' FICHIER
je n'arrive pas à trouver comment lire cette commande, car pour moi 'a[^a] signifie "a" non suivi de "a" et *a signifie un caractère suivit de "a"
pourquoi cela donnerait "au moins 2 fois la lettre "a" "
et les lettres "a" ne pourraient pas être collées ?
de plus la commande suivante dit "exactement 2 fois la lettre "a"
grep '^[^a]*a[^a]*[^a]*$' FICHIER
je ne comprends absolument pas celle-ci
Merci d'avance pour votre aide
étant étudiant et révisant pour les partiels , j'ai relu la correction d'un de mes DS de système quand je suis tombé sur une commande que je ne comprends pas
il s'agit de n'afficher que les lignes qui contiennent au moins 2 fois la lettre "a"
la correction dit : grep 'a[^a]*a' FICHIER
je n'arrive pas à trouver comment lire cette commande, car pour moi 'a[^a] signifie "a" non suivi de "a" et *a signifie un caractère suivit de "a"
pourquoi cela donnerait "au moins 2 fois la lettre "a" "
et les lettres "a" ne pourraient pas être collées ?
de plus la commande suivante dit "exactement 2 fois la lettre "a"
grep '^[^a]*a[^a]*[^a]*$' FICHIER
je ne comprends absolument pas celle-ci
Merci d'avance pour votre aide
A voir également:
- Commande GREP (filtre)
- Invite de commande - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Commande terminal mac - Guide
- Filtre whatsapp - Accueil - Messagerie instantanée
- Commande dism - Guide
1 réponse
Salut,
En fait tu interprètes mal le
Il faut le voir plutôt dans le sens de
En fait
Donc
Un caractère
car pour moi 'a[^a] signifie "a" non suivi de "a" et *a signifie un caractère suivit de "a"
En fait tu interprètes mal le
[^a]*.
Il faut le voir plutôt dans le sens de
.*, ce qui signifie, un caractère ou plusieurs, voire aucun, mais comme il y a
[^a]*, il faut l'interpréter comme n'importe quel caractère à l'exception du caractère
a.
En fait
[^a]remplace le
..
Donc
grep 'a[^a]*a'se lira de cette façon :
Un caractère
asuivi de n'importe quel caractère à l'exception du caractère
ajusqu'à ce qu'on rencontre un caractère
a.
mais
Le principe est le même.
on part d'un début de ligne suivit de n'importe quel caractère à l'exception d'un jusqu'à ce qu'on rencontre un .
puis, n'importe quel caractère à l'exception du caractère jusqu'à ce qu'on rencontre un caractère .
n'importe quel caractère à l'exception du caractère jusqu'à ce qu'on atteigne la fin de la ligne .
:-)