在Linux shell上的结果echo -e "arrays2 2\narrays 2\narrays3 2" | sort
是
arrays 2 arrays2 2 arrays3 2
结果 echo -e "arrays2 28\narrays 28\narrays3 28" | sort
是
arrays2 28 arrays 28 arrays3 28
为什么在第二种情况下,字符串arrays2 28
出现在第一行.这是一个错误,还是我想念一些东西?
我在RHEL4和Ubuntu 11.04上试过这个.
谢谢.
该行为依赖于语言环境:
echo -e "arrays2 28\narrays 28\narrays3 28" | LANG=C sort
版画
arrays 28 arrays2 28 arrays3 28
而
echo -e "arrays2 28\narrays 28\narrays3 28" | LANG=de_DE.UTF-8 sort
版画
arrays2 28 arrays 28 arrays3 28
(请注意,必须安装区域设置才能产生此效果,如果区域设置不存在,则行为将与其相同LANG=C
).