[Bug 213128] version sort (sort -V) order incorrect with non-alphanumeric characters

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Sep 30 18:58:28 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213128

            Bug ID: 213128
           Summary: version sort (sort -V) order incorrect with
                    non-alphanumeric characters
           Product: Base System
           Version: 10.3-RELEASE
          Hardware: i386
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: skh1002 at hotmail.com
                CC: freebsd-i386 at FreeBSD.org
                CC: freebsd-i386 at FreeBSD.org

On FreeBSD 10.3-RELEASE-p9 with /usr/bin/sort version 2.3-FreeBSD:

Version-sorting produces incorrect order if non-alphanumeric characters are
present in sorted lines. Prefix (name) parts of the sorted lines sharing the
same starting characters are seemingly sorted in the reverse order. This is an
example from my package folder:

$ ls /usr/ports/packages/All | sort -V
…
pkgconf-0.9.12_1.txz
pkgconf-1.0.1.txz
pkg-1.6.4_1.txz
pkg-1.7.1.txz
pkg-1.7.2.txz
…

To reproduce the behaviour, the following can be done. The next two commands
produce identical and correct output:

$ echo -e "aa\nab\nabcdefg\nabd\nabcde\nabc\nabcdef"|sort
aa
ab
abc
abcde
abcdef
abcdefg
abd

And

$ echo -e "aa\nab\nabcdefg\nabd\nabcde\nabc\nabcdef"|sort -V
aa
ab
abc
abcde
abcdef
abcdefg
abd

However, the second of these two produces clearly incorrect sort order:

$ echo -e "aa-\nab-\nabcdefg-\nabd-\nabcde-\nabc-\nabcdef-“|sort
aa-
ab-
abc-
abcde-
abcdef-
abcdefg-
abd-

But

$ echo -e "ab-\nabcdefg-\nabd-\nabcde-\nabc-\nabcdef-"|sort -V
abcdefg-
abcdef-
abcde-
abc-
abd-
ab-

The same behaviour is observed when different non-alphanumeric characters are
appended to the end of the sorted strings:

echo -e "ab-\nabcdefg&\nabd#\nabcde@\nabc&\nabcdef_"|sort -V
abcdefg&
abcdef_
abcde@
abc&
abd#
ab-

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-i386 mailing list