В локали ru_RU.UTF-8 в shell под шаблон [A-k] попадают все большие буквы и маленькие буквы от 'b' до 'k', но не 'a'! Это ужасно! И это приводит к совершенно неожиданным ошибкам, особенно если учесть, что выставление LC_* влияет на запускаемые программы, но не на сам shell, обрабатывающий шаблоны.
Контринтуитивный? Я думал, это уже все давно знают. $ bzcat /usr/share/doc/bash-3.2.57/FAQ.bz2 | sed -n '/^E9/,/^E10/{/^E10/!p}' E9) Why does the pattern matching expression [A-Z]* match files beginning with every letter except `z'? ...
(В ответ на комментарий №1) > Контринтуитивный? Я думал, это уже все давно знают. В офисе все присутствующие были потрясены... > $ bzcat /usr/share/doc/bash-3.2.57/FAQ.bz2 | sed -n '/^E9/,/^E10/{/^E10/!p}' > E9) Why does the pattern matching expression [A-Z]* match files beginning > with every letter except `z'? > ... Да я на своих машинах zsh пользуюсь, там этого безобразия нет...
(В ответ на комментарий №2) > > Контринтуитивный? Я думал, это уже все давно знают. > В офисе все присутствующие были потрясены... (вдогонку) Потрясся и я. > Да я на своих машинах zsh пользуюсь, там этого безобразия нет... #!/bin/zsh или там #!/bin/bash4 ?