当一行是另一行的前缀时,“排序”行为

时间:2013-08-30 15:50:10

标签: shell sorting posix gnu-coreutils

POSIX规范似乎没有说明提供给sort程序的一行是另一行的前缀时会发生什么。

但我发现我的副本(GNU coreutils 8.4)优先于前缀:

$ echo -e 'foo\nfoobar' | sort
foo
foobar

$ echo -e 'foobar\nfoo' | sort
foo
foobar
  • 这对sort的所有实现都是通用的吗?
  • 这种行为在哪里定义?
  • 我能依靠它吗?
  • 这是因为这是“排序”这个词的通用定义w.r.t.编程?

1 个答案:

答案 0 :(得分:0)

排序顺序由当前区域设置定义,这是所有POSIX规范必须说的。您当前的语言环境(以及我怀疑的大多数语言环境)会认为前缀在字典上比字符串本身小。