LINUX.ORG.RU

Непонятки с sort


0

0

обычная позиксовская утилита сорт.

Смотрим как она работает на линуксе.

Вот такой файл:

E0_1_0_0_1_0_T
E0_1_0_0_1_0T not E0_1_0_0_1_0_T
E0_1_0_0_1_0_T terminal @3T

Сортируем:

$ sort sss
E0_1_0_0_1_0_T
E0_1_0_0_1_0T not E0_1_0_0_1_0_T
E0_1_0_0_1_0_T terminal @3T

я не понял логики по которой оно так отсортировалось.
Я ожидал такое:

E0_1_0_0_1_0_T
E0_1_0_0_1_0_T terminal @3T
E0_1_0_0_1_0T not E0_1_0_0_1_0_T

Это традиции ГНУ/Линукс? Заниматься всякой цветной фигней и
неправильно реализовывать базовые вещи?   Или это я неправ?
У кого есть под рукой нормальный Юникс/БСД?  можете проверить как
там сортируется такой файл?  
★★★★★
Ответ на: комментарий от dilmah

то есть я готов понять если бы получилось так:

E0_1_0_0_1_0_T
E0_1_0_0_1_0_T terminal @3T
E0_1_0_0_1_0T not E0_1_0_0_1_0_T

но как могло взяться такое:

E0_1_0_0_1_0_T
E0_1_0_0_1_0T not E0_1_0_0_1_0_T
E0_1_0_0_1_0_T terminal @3T

dilmah ★★★★★
() автор топика
Ответ на: комментарий от fghj

я вставил, конкретная проблема решилась.

Но все равно непонятно как мог получиться тот результат

dilmah ★★★★★
() автор топика
Ответ на: комментарий от dilmah

>E0_1_0_0_1_0_T
>E0_1_0_0_1_0T not E0_1_0_0_1_0_T
>E0_1_0_0_1_0_T terminal @3T

обычно sort испльзует strcoll(3),
а эта фунция в свою очередь игнорирует всякую фигню,
типа подчеркиваний, пробелов, запятых, т.е. на самом деле
сравниваются:
E0...T
E0...Tn
E0...Tt

и результат как видите вполне обоснованный.

fghj ★★★★★
()
Ответ на: комментарий от fghj

Тем не менее:

$ uname -srm
NetBSD 4.99.30 i386

$ cat tmp/sss
E0_1_0_0_1_0_T
E0_1_0_0_1_0T not E0_1_0_0_1_0_T
E0_1_0_0_1_0_T terminal @3T

$ echo $LC_ALL
en_US.UTF-8

$ sort /tmp/sss
E0_1_0_0_1_0T not E0_1_0_0_1_0_T
E0_1_0_0_1_0_T
E0_1_0_0_1_0_T terminal @3T

dilmah ★★★★★
() автор топика

> Это традиции ГНУ/Линукс? Заниматься всякой цветной фигней и неправильно реализовывать базовые вещи? Или это я неправ? У кого есть под рукой нормальный Юникс/БСД? можете проверить как там сортируется такой файл?

Нашелся повод попричитать?

stassats ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.