<Précédent | Table des matières | Suivant>
Gammes de caractères traditionnels
Si nous voulions construire une expression régulière qui trouverait chaque fichier dans nos listes commençant par une lettre majuscule, nous pourrions faire ceci :
[moi@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
[moi@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
Il suffit de mettre les 26 lettres majuscules dans une expression entre crochets. Mais l'idée de toute cette saisie est profondément troublante, il existe donc un autre moyen :
[moi@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
MAKEDEV
Panneau de configuration GET
TIGE DE TÊTE X X11
Xorg MAKEFLOPPIES
NetworkManagerNetworkManagerDispatcher
[moi@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
MAKEDEV
Panneau de configuration GET
TIGE DE TÊTE X X11
Xorg MAKEFLOPPIES
NetworkManagerNetworkManagerDispatcher
En utilisant une plage de trois caractères, nous pouvons abréger les 26 lettres. Toute gamme de caractère -
Les mots peuvent être exprimés de cette façon, y compris plusieurs plages, comme cette expression qui correspond à tous les noms de fichiers commençant par des lettres et des chiffres :
[moi@linuxbox ~]$ grep -h '^[A-Za-z0-9]' dirlist*.txt
[moi@linuxbox ~]$ grep -h '^[A-Za-z0-9]' dirlist*.txt
Dans les plages de caractères, nous voyons que le tiret est traité spécialement, alors comment incluons-nous réellement un tiret dans une expression entre crochets ? En en faisant le premier caractère de l'expression. Considérez ces deux exemples :
[moi@linuxbox ~]$ grep -h '[AZ]' dirlist*.txt
[moi@linuxbox ~]$ grep -h '[AZ]' dirlist*.txt
Cela correspondra à chaque nom de fichier contenant une lettre majuscule. Tandis que:
[moi@linuxbox ~]$ grep -h '[-AZ]' dirlist*.txt
[moi@linuxbox ~]$ grep -h '[-AZ]' dirlist*.txt
correspondra à chaque nom de fichier contenant un tiret, ou un « A » majuscule ou un « Z » majuscule.