【发布时间】:2021-11-24 01:58:46
【问题描述】:
comm 提示已排序的文本未排序,sort 给出错误结果。例如,
printf 'G.EC\nGE.BO\nGE.DA\n' | sort
输出
GE.BOAB
G.ECH
GE.DAG
其他例子是ls的输出,
STATIONS_1800
stations.1800.txt
STATIONS.50d
STATIONS.D01
STATIONS.D16
stations.e2008.txt
应该是
STATIONS_1800
STATIONS.50d
STATIONS.D01
STATIONS.D16
stations.1800.txt
stations.e2008.txt
env | grep 'LC\|LANG' 的输出是
LANGUAGE=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_PAPER=en_GB.UTF-8
LANG=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE=en_GB.UTF-8
LC_NUMERIC=en_GB.UTF-8
在另一台具有相同LC* 和LANG* 的机器上,排序工作完美。
【问题讨论】:
-
问题是什么?您可以通过管道
|sort对输出进行排序 -
@Tranbi 命令不正确,因此命令
sort、comm给出错误结果 -
对于投票结束的人,请再次阅读 Q。这不是一个小问题。确实带来了麻烦。
-
哦,我明白了。你试过吗? stackoverflow.com/a/8895544/13525512
-
@Tranbi LANG=C 没有变化。事实上,我在做这个 Q 之前用谷歌搜索过,但没有找到任何相关的东西。这很奇怪,因为几小时前一切都很好。唯一可能相关的是我在我的 ubuntu 18.04 上运行了
sudo apt upgrade。但很难验证。