我试图在sort
命令的手册页中查找,但找不到任何内容。
请考虑以下文本文件t.txt
:
11
1 0
(t.txt
$ xxd -p t.txt
2031310a3120300a
)
在此文件中使用LC_COLLATE="en_US.UTF-8"
和sort
会产生:
$ LC_COLLATE="en_US.UTF-8" sort t.txt
1 0
11
如果我们检查文件中的第二个字符位置(或列),我们会观察到第一个
row有一个空格,第二行有1
。
由于空格的十六进制值0x20
小于1
的十六进制值(0x31
)
我认为那样会给出:
11
1 0
事实证明,可以使用LC_COLLATE=c
$ LC_COLLATE=c sort t.txt
11
1 0
这种情况下LC_COLLATE="en_US.UTF-8"
和LC_COLLATE=c
之间存在差异的原因是什么?
另见:
修改
有关此问题的更多信息,请访问:
答案 0 :(得分:2)
标点符号
注意sort可以使用-b选项显式跳过空格, 但请注意使用的技巧,所以我建议使用sort --debug 使用时的选项。