Bash lui-même ne reconnaît pas les expressions rationnelles. Dans les scripts, les commandes et utilitaires, tels que sed et awk, interprètent les ER.
Bash effectue bien l'expansion de noms de fichiers, un processus connu sous le nom de << globbing >> (NdT: remplacement), mais ceci n'utilise pas les ER standards. A la place, le remplacement reconnaît et étend les jokers. Le remplacement interprète les caractères joker standards, * et ?, les listes de caractères entre crochets, et certains autres caractères spéciaux (tels que ^ pour inverser le sens d'une correspondance). Néanmoins il existe d'importantes limitations sur les caractères joker dans le remplacement. Les chaînes contenant * ne correspondront pas aux noms de fichiers commençant par un point, comme, par exemple, .bashrc. [1] De même, le ? a un sens différent dans le cadre du remplacement et comme partie d'une ER.
bash$ ls -l total 2 -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 a.1 -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1 -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1 -rw-rw-r-- 1 bozo bozo 466 Aug 6 17:48 t2.sh -rw-rw-r-- 1 bozo bozo 758 Jul 30 09:02 test1.txt bash$ ls -l t?.sh -rw-rw-r-- 1 bozo bozo 466 Aug 6 17:48 t2.sh bash$ ls -l [ab]* -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 a.1 -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1 bash$ ls -l [a-c]* -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 a.1 -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1 -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1 bash$ ls -l [^ab]* -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1 -rw-rw-r-- 1 bozo bozo 466 Aug 6 17:48 t2.sh -rw-rw-r-- 1 bozo bozo 758 Jul 30 09:02 test1.txt bash$ ls -l {b*,c*,*est*} -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1 -rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1 -rw-rw-r-- 1 bozo bozo 758 Jul 30 09:02 test1.txt bash$ echo * a.1 b.1 c.1 t2.sh test1.txt bash$ echo t* t2.sh test1.txt |
Même une commande echo réalise une expansion des jokers sur les noms de fichiers.
Voir aussi Exemple 10-4.
[1] | L'expansion de noms de fichiers peut faire des correspondances avec les fichiers commençant par un point, mais seulement si le modèle inclut spécifiquement le point.
|
Précédent | Sommaire | Suivant |
Une brève introduction aux expressions rationnelles | Niveau supérieur | Sous-shells |