Я сошла с ума

2001-09-21 Пенетрантность Serge Matveev

Как это понимать?

$ ls [A-D]*
BENCHMARKING  BUGS  changelog.Debian.gz  changelog.gz  copyright.gz

Странно, почему выводятся файлы с маленькой 'c'? На [ABCD]* всё
выводится нормально.

$ locale
LANG=ru_RU.KOI8-R
LC_CTYPE=ru_RU.KOI8-R
LC_NUMERIC=ru_RU.KOI8-R
LC_TIME=ru_RU.KOI8-R
LC_COLLATE=ru_RU.KOI8-R
LC_MONETARY=ru_RU.KOI8-R
LC_MESSAGES=ru_RU.KOI8-R
LC_ALL=
$ export LC_ALL=C
$ ls [A-D]*
BENCHMARKING  BUGS

Пропало. Значит баг где-то в локали? Где? Как исправить?

$ unset LC_ALL
$ locale
LANG=ru_RU.KOI8-R
LC_CTYPE=ru_RU.KOI8-R
LC_NUMERIC=ru_RU.KOI8-R
LC_TIME=ru_RU.KOI8-R
LC_COLLATE=ru_RU.KOI8-R
LC_MONETARY=ru_RU.KOI8-R
LC_MESSAGES=ru_RU.KOI8-R
LC_ALL=
$ ls [A-D]*
BENCHMARKING  BUGS
$ 

В чём разница-то?! (Стоит Debian 2.2)

-- 
Serge Matveev - ICQ:3575357



Re: Я сошла с ума

2001-09-21 Пенетрантность Victor Wagner
On Fri, 21 Sep 2001, Serge Matveev wrote:

 From: Serge Matveev [EMAIL PROTECTED]
 Subject: Я сошла с ума


 Как это понимать?

 $ ls [A-D]*
 BENCHMARKING  BUGS  changelog.Debian.gz  changelog.gz  copyright.gz

 Странно, почему выводятся файлы с маленькой 'c'? На [ABCD]* всё
 выводится нормально.

B collation sequence. В русской локали collation sequence такой
A a B b C c D d ... Я я

Это не баг, это фича. Попробуйте убедить Дреппера в обратном.

[EMAIL PROTECTED] touch A B C D E F a b c d e f
[EMAIL PROTECTED] bash -c echo [A-D]
A a B b C c D
[EMAIL PROTECTED] LC_COLLATE=C bash -c echo [A-D]
A B C D

Критична при этом локаль не у ls, а у shell, поскольку диапазоны
раскрывает он.

Отселе амораль - пользуйте LANG=ru_RU.CP1251 и LC_COLLATE=C.
Результаты будут эквивалентны ожидаемым, пока не встретится буква ё

-- 
Victor Wagner   [EMAIL PROTECTED]
Chief Technical Officer Office:7-(095)-748-53-88
Communiware.Net Home: 7-(095)-135-46-61
http://www.communiware.net  http://www.ice.ru/~vitus