unix - 为什么UNIX sort实用程序在没有选项-b的情况下会忽略前导空格?

标签 unix

[这是我向后问的类似问题的重写...对不起,造成困惑!]

我对前导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/

相关文章:

php - 如何设置sendmail中的From字段?

linux - 文件编辑-命令行 unix

linux - 为什么 "mycommand >>file1 >>file2"不附加到两个文件?

shell - 如何 "touch"带有 UTC 时间戳的文件?

linux - 系统:Info perl module to get memory and space information

python - scp 文件的创建时间

c - 索拉里斯 10 : handle gracefully ENOBUFS error when changing socket buffer

linux - 使用youtube-dl将当前文件夹中的项目与播放列表同步

bash - 在 Bash 中计算百分位数

Java Runtime.getRuntime().exec for unix find command with not path