'echo [AZ] *' также соответствует именам файлов в нижнем регистре?

Я работаю с корневым каталогом и хочу печатать записи каталога, начинающиеся с заглавной буквы.

$ echo [A-Z]*
Applications Library Network System Users Volumes bin cores dev etc home installer.failurerequests net private sbin tmp usr var vm

Результат сбивает меня с толку, потому что я не ожидал, что cores dev и т. Д. Home installer.failurerequests net private sbin tmp usr var vm будет соответствовать моему шаблону.

Как мне написать шаблон глобуса, который соответствует только заглавным буквам?

7
задан 25 March 2018 в 04:25

1 ответ

Поэтому шаблон шарика [A-Z] обычно не соответствует прописным буквам. Конкретно это расширяется согласно

сортирующая последовательность текущей локали и набор символов

Если Вы хотите файлы, запускающиеся с прописной буквы, можно использовать

echo [[:upper:]]*

или набор локаль явно

(LC_COLLATE=C; echo [A-Z]*)

или используйте удар globasciiranges опция оболочки

(shopt -s globasciiranges; echo [A-Z]*)

Посмотрите Pattern matching раздел man bash

14
ответ дан 23 November 2019 в 06:16

Другие вопросы по тегам:

Похожие вопросы: