`sort' behaviour when one line is prefix of another

76 views Asked by At

The POSIX specification does not seem to say anything about what happens when one line provided to the sort program is the prefix of another.

But I find that my copy (GNU coreutils 8.4) gives precedence to the prefix:

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

$ echo -e 'foobar\nfoo' | sort
foo
foobar
  • Is this universal to all implementations of sort?
  • Where is this behaviour defined?
  • Can I rely on it?
  • Is this so because this is the universal definition of the word "sort" w.r.t. programming?
1

There are 1 answers

0
chepner On BEST ANSWER

Sort order is defined by the current locale, which is all the POSIX spec has to say. Your current locale (and most locales, I suspect) will consider a prefix to be lexicographically smaller than the string itself.