为什么UNIX排序实用程序在没有选项-b的情况下忽略前导空格?
发布时间:2020-12-16 01:09:26 所属栏目:安全 来源:网络整理
导读:[这是我向后问的一个类似问题的改写……抱歉这个混乱!] 我对领先的s和标准排序实用程序感到困惑.考虑myfile的内容: a b a 执行sort -t:myfile会产生意外的结果,至少对我来说: a a b 那有意义吗? 空应该在a-z之前(如ASCII中的情况)或之后.在第一种情况下
[这是我向后问的一个类似问题的改写……抱歉这个混乱!]
我对领先的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像这样.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |