Неправильное поведение & ldquo; sort -u & rdquo ;?

[обновлено 12.11]

Я нашел временное решение для этого.

LC_ALL=C sort -u

из bugreport здесь

sort будет получать информацию из LC_ALL или LANG,

Мое значение по умолчанию пусто для LC_ALL, но zh_CN.UTF-8 для LANG. Если для en_US.UTF-8 установлено значение LANG, будет возникать такая же проблема.

Я больше не буду копать. Но, похоже, этот неправильный метод кодирования используется для sort.

Большое спасибо за @GeorgeUdosen.

[обновлено 12.11] Тест на другой систем:

Distribution Sort_Version Result ==================================================== ubuntu 17.10 (laptop) gnu sort 8.26 Wrong ubuntu 16.04 (desktop) gnu sort 8.5 Wrong centos 7 gnu sort 8.22 Correct centos 6 gnu sort 8.6 Wrong Max OSX 2.3-Apple (99) Correct

все,

У меня есть работа с моим китайским корпусом. Один из них - создать список китайских символов.

Вот проблема. Я получил несколько символов (китайские пунктуации) ниже: “ ” 、 。 《 》 ! ( ) , : ?

, если я попытаюсь использовать sort -u, я получил только символы ниже:

“ ” 、

sort version is 8.26, on ubuntu 17.10 with everything up to date.

полный запись операции: здесь

символы выше можно скачать по адресу: pastebin

0
задан 11 December 2017 в 13:01

2 ответа

используйте

LC_ALL=C sort -u или LC_COLLATE=C sort -u

, чтобы заставить функцию сравнения в sort сравнить байты памяти для правильного результата.

1
ответ дан 18 July 2018 в 01:24

используйте

LC_ALL=C sort -u или LC_COLLATE=C sort -u

, чтобы заставить функцию сравнения в sort сравнить байты памяти для правильного результата.

1
ответ дан 24 July 2018 в 17:23

Другие вопросы по тегам:

Похожие вопросы: