Wildcards
Posté le dim 06 mars 2016 dans linux
Les caractères génériques ou wilcards, permettent d'appliquer une commande à un groupe de fichiers et/ou dossiers dont les noms sont similaires.
Une chaîne de texte est un wildcard pattern si elle contient au moins un de ces caractères ? * [.
Le globbing est l'opération qui développe un wildcard pattern en une liste de mots qui correspondent au pattern.
Ce qui suit est inspiré de la page man 7 glob.
L'astérisque *
Permet de remplacer de zéro à plusieurs caractères.
ls img*liste les noms de fichiers débutant par img.ls *imgliste les noms de fichiers se terminant par img.ls *img*liste tous les noms de fichiers contenant img.
Le point d’interrogation ?
Représente toujours un seul caractère.
ls ?liste les noms comportant un seul caractère.ls img????.jpgliste les noms de fichiers commençant par img suivi de quatre caractères et qui se terminent par .jpg.
On peut évidement mixer * et ?.
ls img????*liste les noms de fichiers commençant par img suivi de quatre caractères et se terminant par un nombre quelconque de caractères.
Les crochets [ ]
Les crochets permettent d'indiquer une liste de caractères de remplacement.
La commande ls ?mg* liste les noms de fichiers contenant m et g à la seconde et troisième position.
On peut souhaiter limiter la sélection aux fichiers Img... et img....
ls [iI]mg*liste donc les noms commençant par img ou Img.
Si le point d'exclamation ! suit le crochet ouvrant [, l'expression est inversée.
ls [!iI]mg*sélectionne tout les fichiers ne commençant par i ou I, dont la seconde et troisième lettre sont m et g.
Notez :
- Les crochets ne peuvent pas être vide.
 - Le crochet fermant ] peut être présent. Dans ce cas, il doit suivre le crochet ouvrant.
 - [ ][!] permet de faire correspondre les caractères ] [ et !.
 
Il est également possible d'indiquer une plage de caractères (range) en utilisant le tiret - :
- [a-f] est équivalent à [abcdef]
 - [a-fA-F0-9] est équivalent à [abcdefABCDEF0123456789]
 
Si le tiret doit faire partie des caractères de remplacement, il doit être placé en première ou dernière position.
Pathnames
Le globbing s'applique séparément sur chaque élément d'un chemin. Le caractère / ne peut être remplacé par le point d'interrogation, l'astérisque ou une range.