Je travaille sur le répertoire racine et souhaite imprimer les entrées de répertoire commençant par une lettre majuscule.
$ echo [A-Z]*
Applications Library Network System Users Volumes bin cores dev etc home installer.failurerequests net private sbin tmp usr var vm
Le résultat m'embrouille car je ne m'attendais pas à ce que cores dev etc home installer.failurerequests net private sbin tmp usr var vm
corresponde à mon modèle.
Comment puis-je écrire un motif glob qui correspond uniquement aux lettres majuscules?
En effet, le motif globulaire [A-Z]
ne correspond généralement pas aux lettres majuscules. Plus précisément, il se développe en fonction de
séquence d'assemblage et jeu de caractères de l'environnement local actuel
Si vous voulez des fichiers commençant par une lettre majuscule, vous pouvez utiliser
echo [[:upper:]]*
ou définir explicitement les paramètres régionaux
(LC_COLLATE=C; echo [A-Z]*)
ou utilisez l'option bash globasciiranges
Shell
(shopt -s globasciiranges; echo [A-Z]*)
Voir la section Pattern matching
de man bash