首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序命令中空格的处理。LC_COLLATE=c与LC_COLLATE=“en_en.US.UTF 8”的差异

排序命令中空格的处理。LC_COLLATE=c与LC_COLLATE=“en_en.US.UTF 8”的差异
EN

Stack Overflow用户
提问于 2014-05-14 16:28:27
回答 1查看 2.3K关注 0票数 4

我试图在sort命令的手册页中查找这一点,但什么也找不到。因此,请考虑以下文本文件t.txt

代码语言:javascript
复制
 11
1 0

( t.txt的二进制表示)

代码语言:javascript
复制
$ xxd -p t.txt
2031310a3120300a

)

在此文件上使用LC_COLLATE="en_US.UTF-8"sort一起提供:

代码语言:javascript
复制
$  LC_COLLATE="en_US.UTF-8" sort t.txt
1 0
 11

如果我们检查文件中的第二个字符位置(或列),就会发现第一行有一个空格,第二行有一个1。由于空间具有0x20的十六进制值(小于1的十六进制值(即0x31) ),所以我假设这种排序会提供:

代码语言:javascript
复制
 11
1 0 

结果表明,使用LC_COLLATE=c可以获得期望的排序顺序。

代码语言:javascript
复制
$ LC_COLLATE=c sort t.txt
 11
1 0

在这种情况下,LC_COLLATE="en_US.UTF-8"LC_COLLATE=c的区别是什么原因?

另请参阅:

编辑:

有关这一问题的更多信息可在这里找到:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-18 17:11:07

在en_US区域设置中排序时忽略标点符号

注意,排序可以使用-b选项显式跳过空格,但请注意这是要使用的技巧,因此我建议在使用该选项时使用排序-调试选项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23660247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档