Estoy trabajando en el directorio raíz y quiero imprimir entradas del directorio que comienzan con una letra mayúscula.
$ echo [A-Z]*
Applications Library Network System Users Volumes bin cores dev etc home installer.failurerequests net private sbin tmp usr var vm
El resultado me confunde porque no esperaba
cores dev etc home installer.failurerequests net private sbin tmp usr var vm
coincidir con mi patrón.
¿Cómo puedo escribir un patrón global que solo coincida con letras mayúsculas?
Respuesta1
Esto se debe a que el patrón global [A-Z]
generalmente no corresponde a letras mayúsculas. Específicamente se expande según
la secuencia de clasificación y el juego de caracteres de la configuración regional actual
Si desea archivos que comiencen con una letra mayúscula, puede usar
echo [[:upper:]]*
o establecer la configuración regional explícitamente
(LC_COLLATE=C; echo [A-Z]*)
o use la globasciiranges
opción bash shell
(shopt -s globasciiranges; echo [A-Z]*)
Ver la Pattern matching
sección deman bash