【发布时间】:2011-10-18 21:41:14
【问题描述】:
给定一个文件txt:
ab
a c
a a
当调用sort txt时,我得到:
a a
ab
a c
换句话说,它不是正确的排序方式,它会删除/忽略空格!我预计这是 sort -i 的行为,但无论有没有 -i 标志都会发生这种情况。
我想获得“正确”的排序:
a a
a c
ab
我该怎么做?
【问题讨论】:
-
我已经创建了您的输入文件并使用 sort 来提供所需的输出而没有任何问题。 txt 是在 *nix 系统上创建的吗?你确定它们是空格而不是其他类型的字符吗?
-
是的,我实际上在命令行中输入了这个确切的示例......使用 ubuntu 默认安装,几乎开箱即用,无需花哨的环境调整。
-
请将正确的解决方案标记为已接受,而不是将问题编辑为“已解决”。
-
其实这是正确的排序。它被称为库或字典排序,其中我们只查看字母的差异,而不是空格或标点符号。这是 Unicode 排序算法的默认模式,至少在您达到第 4 级之前是这样。但是,这不是 Unix 排序应该采取的方式,因为 Unix 排序命令是基于字段的,而不是基于文本的。
标签: linux shell sorting locale