【发布时间】:2016-02-06 15:57:48
【问题描述】:
我有 2 个文本文件:
$ cat /tmp/test1
"AAP" bar
"AEM" bar
"AA" bar
"AEO" bar
"A" bar
$ cat /tmp/test2
"AEM" foo
"AAP" foo
"A" foo
"AEO" foo
"AA" foo
我想对它们进行排序
$ sort /tmp/test1
"AA" bar
"AAP" bar
"A" bar <-- "A" is in position 3
"AEM" bar
"AEO" bar
$ sort /tmp/test2
"AA" foo
"AAP" foo
"AEM" foo
"AEO" foo
"A" foo <-- "A" is in position 5
为什么"A" 会出现在/tmp/test1 中的第 3 位和/tmp/test2 中的第 5 位?
我的期望是每列的每个字符都会进行比较。
因此,在比较第 3 列时,'A'、'E' 和 '"' 将相互比较,这将是此测试数据最终排序顺序的最终决定因素。
显然我的期望是错误的,那么sort 是如何工作的,如果不是我期望的那样?
是否有sort 的命令行选项或我可以用来获得所需排序顺序的其他实用程序?
【问题讨论】:
-
我投票结束这个问题,因为它属于 unix.stackexchange.com