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

前端之家收集整理的这篇文章主要介绍了为什么UNIX排序实用程序在没有选项-b的情况下忽略前导空格?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
[这是我向后问的一个类似问题的改写……抱歉这个混乱!]

我对领先的s和标准排序实用程序感到困惑.考虑myfile的内容

a
 b
  a

执行sort -t:myfile会产生意外的结果,至少对我来说:

a
  a
 b

那有意义吗? <空>应该在a-z之前(如ASCII中的情况)或之后.在第一种情况下我会期待

a
 b
a

而在第二种情况下

a
 b
  a

那么,为什么排序似乎应用-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像这样.)

原文链接:/bash/384555.html

猜你在找的Bash相关文章