From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Sergey Stepanov To: ALT Linux Community Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: unknown via proxy [80.254.106.30] Date: Thu, 12 Oct 2006 17:36:02 +0400 In-Reply-To: =?koi8-r?Q?<20061012095929.0fd08cb1.cetus=40newmail.ru>?= Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Message-Id: Subject: Re: [Comm] =?koi8-r?b?7sXQ0sHXyczYzsHRINPP0tTJ0s/Xy8Eg1yDLz87Tz8zJ?= =?koi8-r?b?Pw==?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: Sergey Stepanov , ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Oct 2006 13:36:02 -0000 Archived-At: List-Archive: List-Post: > On Thu, 12 Oct 2006 00:13:38 +0400 > "Damir Shayhutdinov" wrote: > > > > Объясните пожалуйста, почему так происходит. > > > Вопрос: в чем причина неправильной сортировки? Как исправить? > > Это настройки локали (LC_COLLATE) > > > > Если сделать LC_COLLATE=C ls -1 > > то получится как в винде. > > $ ls -1 > _ > а > А > аа > а_а > аб > а_б > аф > а_ф > аш > а_ш > б > Б > в > г > д ... > $ LC_COLLATE=C ls -1 > _ > ё > ю > а > а_а > а_б > а_ф > а_ш > аа > аб > аф > аш > б > ц > д > е > ф > г > ... > Китайкин Анатолий Константинович > ОАО "Радиоавионика", СПб > _______________________________________________ > Community mailing list > Community@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/community Хм, в первом примере алгоритм сортировки, при обработке строк, пропускает "небуквенные" символы. Поэтому сортировка такая странная. Зато по русскому алфавиту. Во втором примере строки сортируются в чистом виде, не сбрасывая со счетов "небуквенные" символы. Сортировка в этом случае правильная. Но зато не по русскому алфавиту. Как же сделать так, чтобы и сортировка шла по алфавиту, и "небуквенные" символы учитывались при сортировке? И еще пара вопросов. 1. Пошукал в тырнете на предмет допустимых значений, которые может принимать системная переменная LC_COLLATE. Нигде этого не описано. Подозреваю что допустимые значения - это вывод команды locale -a, там в списке есть "C". Так ли это? 2. Я даю команду #LC_COLLATE=C Проверяю #set | grep LC_COLLATE Все в порядке, переменная LC_COLLATE имеет значение C. Затем даю команду #locale В выводимом списке значение переменной LC_COLLATE установлено как "ru_RU.KOI8-R" Я не пойму, это две разных переменных с одинаковым именем? Со всяческими пожеланиями, Сергей. http://xi.net.ru