кодировка :-((

zya369


[ asuuis]$ cat q
.
.z
q
z
.q
[ asuuis]$ cat q | sort
.
q
.q
z
.z
[ asuuis]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=


zya369

всё, тема закрыта, так что кто не успел обозвать меня ламером - поздняк метаться %)

artimon

Ну на самом деле не совсем закрыта. Моё предложение убивает напрочь возможность сортировки по русскому языку.

skvoria

Ну не совсем убивает
Остается возможность сортировки по коду символа, что для ряда кодировок (типа cp1251) дает вполне приемлемые результаты. Кроме буквы "ё"

zya369

%)
вроде русские сортирует (кроме Ё)

dmitri=> select * from q order by i;
i
----
.
.
.q
.z


q
z
а
бё
и
й
ф
ё
ёй

Ivan8209

locate locale
"export LANG=ru_RU.UTF-8"?
---
...Я работаю антинаучным аферистом...

artimon

Тогда опять будет фигня с точками.

Ivan8209

"export LANG=ru_RU.KOI8-R" и работать по стандарту?
---
...Я работаю антинаучным аферистом...

artimon

По какому стандарту?
В каком стандарте написано, что при сортировке точки должны игнорироваться?
Как мне сделать так, что б они не игнорировались, но при этом русские буквы сортировались правильно?

Ivan8209

Государственному.
1. Использовать то, что работает, КОИ-8.
2. Рыться в locale.
Можно, конечно, пытаться использовать полумеры,
вроде "export LC_COLLATE=ru_RU.KOI8-R".
---
...Я работаю антинаучным аферистом...

artimon

~> export LANG=ru_RU.KOI8-R
~> 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_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=
~> sort a.txt
.
.q
q
.z
z
а
ё
й
к
р
ф
~>
Что я делаю не так?

Fragaria

а как q влезла между двумя строками, начинающимися на .?

artimon

Если ты мысленно уберёшь точки, то ты поймёшь, что всё отсортировано правильно.
Вот только хочется, что б сначала шли точки а потом буквы.

Fragaria

во-во, так что KOI8-R не катит =(

Fragaria

а может это фича самого sort, чтобы скрытые папки помещать где надо?

artimon

На самом деле всё ещё смешнее. Под FreeBSD сортирует так, как я этого хочу
~> export LANG=ru_RU.KOI8-R; locale; sort a.txt; uname
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_ALL=
.
.q
.z
q
z
а
ё
й
к
р
ф
FreeBSD
~>
Оставить комментарий
Имя или ник:
Комментарий: