“sort -u” 的行为错误吗?

“sort -u” 的行为错误吗?

[12.11更新]

我找到了一个临时的解决方案。

LC_ALL=C sort -u

来自错误报告这里

sortLC_ALL将从或获取信息LANG

我的 默认为空LC_ALL,但是zh_CN.UTF-8LANG如果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.

完整操作记录:粘贴箱

以上角色可从以下位置下载:粘贴箱

答案1

使用

LC_ALL=C sort -u 或者 LC_COLLATE=C sort -u

强迫比较函数sort比较内存字节以获得正确的结果。

相关内容