[这是我向后问的类似问题的重写...对不起,造成困惑!]
我对前导s和标准sort
实用程序感到困惑。考虑myfile
的内容:
a
b
a
至少对我来说,执行
sort -t : myfile
会产生意外的结果:a
a
b
那有意义吗?
<space>
应该在a-z
之前(在ASCII中就是这种情况)或之后。在第一种情况下,我期望 a
b
a
而在第二种情况下
a
b
a
那么,为什么不包含
sort
似乎应用了-b
选项(忽略前导s)呢?实际上,为了安全起见,我添加了-t
选项,以便每行中只有一个字段。 (According to the POSIX standard,“字段包含最大的非分隔字符序列,并且在没有选项-t的情况下,前面的任何字段分隔符。” sort myfile
产生相同的输出,这也是意外的。)提前致谢!
最佳答案
这取决于语言环境。和
LC_COLLATE=en_US.utf8 sort myfile
我得到了您意想不到的结果,并且
LC_COLLATE=C sort myfile
我得到您的预期结果。另请参阅bash sort unusual order. Problem with spaces?
(我不知道为什么排序这样处理-b和-t。)
关于unix - 为什么UNIX sort实用程序在没有选项-b的情况下会忽略前导空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168596/