Les commandes de gestion de fichiers autorisent l'utilisation de méta-caractères qui peuvent être combinés avec des caractères spéciaux.
Les méta-caractères sont des caractères de substitution utilisés pour définir des noms génériques.
Liste des caractères :
*
: 0 à n caractères?
: un seul et un seul caractère quelconque[...]
: un seul caractère de la liste entre []
[..._...]
: un seul caractère compris dans l'interval de caractères, bornes incluses[!...]
: négation, un seul caractère autre que ceux indiqués entre []
(attention ^
est aussi valable)Exemples :
*.c
: tous les noms qui se terminent par ".c"
ab?h
: tous les noms de 4 caractères qui commencent par "ab" et qui se terminent par "h", la valeur du troisème caractère étant quelconque.
ab[bhmp]15
: tous les noms de cinq caractères qui commencent par "ab" et qu ise terminent par "15", la valeur du troisième caractère étant soit "b", soit "h", soit "m", soit "p"
ab[a-h1-5]2
: tous les noms de quatre caractères qui commencent par "ab" et qui se terminent par "2". la valeur du troisième caractère étant comprise entre "a et h" ou "1 et 5".
ab[!aei]h
: tous les noms de quatre caractères qui commencent par "ab" et qui se terminent par "h". Le troisième caractère n'étant pas "a" ou "e" ou "i".
[A-Z]
: un caractère parmi les lettres en majuscules
[A-Za-z]
: un caractère parmi les lettres en majuscule ou minuscules
Attention à l'ordre des caractères des séquences.
Il est possible d'utiliser une des classes de caractères suivantes en utilisant la syntaxe [:classe:]
Classes | Descriptions |
---|---|
[:alpha:] |
n'importe quelle lettre |
[:digit:] |
n'importe quel chiffre |
[:xdigit:] |
caractères hexadécimaux |
[:alnum:] |
n'importe quelle lettre ou chiffre |
[:space:] |
n'importe quel espace blanc |
[:punct:] |
n'importe quel signe de ponctuation |
[:lower:] |
n'importe quelle lettre en minuscule |
[:upper:] |
n'importe quelle lettre capitale |
[:blank:] |
espace ou tabulation |
[:graph:] |
caractères affichables et imprimables |
[:cntrl:] |
caractères d'échappement |
[:print:] |
caractères imprimables exceptés ceux de contrôle |
En plus des méta-caractères, les environnements ksh et bash disposent d'expressions complexes permettant d'étendre les possibilités de remplacement de caractères.
Expressions | Descriptions |
---|---|
?(...) |
0 à 1 fois l'expression entre parenthèses |
*(...) |
0 à n fois l'expression entre parenthèses |
+(...) |
1 à n fois l'expression entre parenthèses |
@(...) |
1 fois l'expression entre parenthèses |
!(...) |
l'expression entre parenthèses ne sera pas présente |
Il faudra s'assurer que l'utilisation des expressions complexes sot bien activé à l'aide de l'option
extglob
de la commande shopt :shopt -s extglob
Comme pour les caractères, il est possible d'offrir un choix d'expression en utilisant le caractère accolade
{chaine1,chaine2,chaine3}
: chaine1 ou chaine2 ou chaine3
exemple pour afficher les fichiers ".txt" ou ".odt" ou ".doc"
$ ls fichier.{txt,odt,doc}
En plus des méta-caractères, le shell interprète de manière particulière certains caractères dit spéciaux.
Caractères | Descriptions |
---|---|
' ' (simple quote) |
banalise tous les caractères situés entre les simples quotes |
" " (double quote) |
banalise tous les caractères situés entre les doubles quotes (sauf $, \ et ` (Dollar, Antislah et Back quote) |
\ -Antislash) |
banalise le caractère suivant lorsque celui-ci est évalué comme étant un caractère special ou un délimiteur. N'est pas interprété dans le cas contraire et donc affiché normalement |
$ (Dollar) |
Permet d'afficher le contenu d'une variable |
`...` (back quote) |
il est préférable d'utiliser $(...) sur les distributions récentes |