Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux的异常行为';s排序命令_Linux_Shell_Sorting - Fatal编程技术网

linux的异常行为';s排序命令

linux的异常行为';s排序命令,linux,shell,sorting,Linux,Shell,Sorting,在Linux shell上,echo-e“arrays2\narrays 2\narrays 32”| sort的结果是 arrays 2 arrays2 2 arrays3 2 arrays2 28 arrays 28 arrays3 28 而echo-e“arrays2 28\narrays 28\narrays3 28”排序的结果是 arrays 2 arrays2 2 arrays3 2 arrays2 28 arrays 28 arrays3 28 为什么在第二种情况下,字

在Linux shell上,
echo-e“arrays2\narrays 2\narrays 32”| sort的结果是

arrays  2
arrays2 2
arrays3 2
arrays2 28
arrays 28
arrays3 28
而echo-e“arrays2 28\narrays 28\narrays3 28”排序的结果是

arrays  2
arrays2 2
arrays3 2
arrays2 28
arrays 28
arrays3 28
为什么在第二种情况下,字符串
arrays2 28
出现在第一行。 这是虫子,还是我错过了什么

我在RHEL4和Ubuntu11.04上试过这个


谢谢。

如果您将语言环境从en_US.utf8更改为旧的默认设置,它将按照您期望的方式工作:

echo  -e "aaa\nfoo\narrays2 28\narrays 28\narrays3 28" | LC_ALL=C sort -
aaa
arrays 28
arrays2 28
arrays3 28
foo

该行为取决于区域设置:

echo -e "arrays2 28\narrays 28\narrays3 28" | LANG=C sort
印刷品

arrays 28 arrays2 28 arrays3 28 印刷品

arrays2 28 arrays 28 arrays3 28 阵列2 28 阵列28 阵列3 28
(请注意,必须安装区域设置才能产生此效果,如果区域设置不存在,行为将与
LANG=C
相同)。

My
sort
的行为与此不同。您使用的是哪个发行版?我的发行版@MKo:你所在的地区是什么?尝试
echo$LANG