expresison reguliere - Shell/Batch - Programmation
Marsh Posté le 08-02-2005 à 00:00:09
1/ L'etoile signifie "0 fois ou plus". Donc tu cherche tous le fichier qui ont au moins 0 characteres majuscule au debut... Donc effectivement tous les fichiers matchent. Si j'ai bien compris ce que tu veux c'est "+" au lieu de "*".
2/ ls|grep '\\a' : dans grep, "\" sert a echapper le caratere suivant. Si tu veux avoir un "\" dans ta regexp il faut echapper le "\" avec un autre "\".
3/ 'a\{2\}' match si la chaine contient 2 "a" a la suite. Est ce que "aaa" contient deux "a" a la suite ? Oui. Donc ca match. Si tu ne veux matcher que les chaines qui contiennent exactement 2 a et rien d'autre, il faut faire '^a\{2\}$'.
Marsh Posté le 07-02-2005 à 20:53:34
salut qqes quesiton
quand je fais:
1/
ls|grep '^[A-Z]*'
jobtient tous les fichiers,comment ca se fait,theoriquement letoile sert a a dire que il ya repetition de caractere majuscules apres?
en fait jobtient la meme chose avec
ls|grep '^a*'
a la place de me montrer le ficchier aaa par ex ,y me les mets tous a lecran!
2/
sinon
aussi
si jecrit touch '\a'
il me cree le fichier \a
par contre si je fais ls|grep '\a' y me trouve pas le fichier!
les entre cotes ne doivent elle pas completement annihiler les interpreation des metacaracter?
3/aussi
jai un fichier aaa
coment ca se fait que si je tape:
ls|grep 'a\{2\}'
je lobtienne alors que la je ne lai fait repeter que 2 fois?
Message édité par nohack le 07-02-2005 à 20:57:23