Я работаю над корневым каталогом и хочу распечатать записи в каталоге, начиная с буквы верхнего регистра.
$ 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 etc home installer.failurerequests net private sbin tmp usr var vm будет соответствовать моему pattern.
Как написать шаблон шара, который соответствует только строчным буквам?
Это потому, что шаблон glob [A-Z] обычно не соответствует строчным буквам. В частности, он расширяется в соответствии с
совпадающей последовательностью текущего языка и набором символов. Если вам нужны файлы, начинающиеся с буквы верхнего регистра, вы можете использовать
echo [[:upper:]]*
[d4 ] или установить локаль явно (LC_COLLATE=C; echo [A-Z]*)
или использовать опцию оболочки bash globasciiranges
(shopt -s globasciiranges; echo [A-Z]*)
См. раздел Pattern matching в man bash
Это потому, что шаблон glob [A-Z] обычно не соответствует строчным буквам. В частности, он расширяется в соответствии с
совпадающей последовательностью текущего языка и набором символов. Если вам нужны файлы, начинающиеся с буквы верхнего регистра, вы можете использовать
echo [[:upper:]]*
или установить локаль явно
(LC_COLLATE=C; echo [A-Z]*)
или использовать опцию оболочки bash globasciiranges
(shopt -s globasciiranges; echo [A-Z]*)
См. раздел Pattern matching в man bash
Это потому, что шаблон glob [A-Z] обычно не соответствует строчным буквам. В частности, он расширяется в соответствии с
совпадающей последовательностью текущего языка и набором символов. Если вам нужны файлы, начинающиеся с буквы верхнего регистра, вы можете использовать
echo [[:upper:]]*
или установить локаль явно
(LC_COLLATE=C; echo [A-Z]*)
или использовать опцию оболочки bash globasciiranges
(shopt -s globasciiranges; echo [A-Z]*)
См. раздел Pattern matching в man bash