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 *img
liste 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????.jpg
liste 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.