GNU bug report logs -
#9808
sort behavior
Previous Next
Full log
Message #14 received at control <at> debbugs.gnu.org (full text, mbox):
tag 9808 = notabug
thanks
Re-adding the list, so that others may benefit from the solution or
chime in with suggestions.
On 10/20/2011 07:36 AM, mohamad hadi kianersi wrote:
> yes,but view these
>
> 1.
> [hadi <at> hadi ~]$ printf '10 a\n1 b\n2 c\n' | sort -k1,1 -r -n
> 10 a
> 2 c
> 1 b
>
> but
> [hadi <at> hadi ~]$ printf '10 a\n1 b\n2 c\n' | sort -k1,1r -n
> 2 c
> 10 a
> 1 b
> cant sorted with numeric
Did you try 'sort --debug' like I suggested?
$ printf '10 a\n1 b\n2 c\n' | LC_ALL=C sort -k1,1r -n --debug
sort: using simple byte comparison
sort: option `-n' is ignored
2 c
_
___
10 a
__
____
1 b
_
___
Notice - sort is _correctly_ ignoring -n, and --debug even tells you so,
per the rules given by POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html
"The following options shall override the default ordering rules. When
ordering options appear independent of any key field specifications, the
requested field ordering rules shall be applied globally to all sort
keys. When attached to a specific key (see -k), the specified ordering
options shall override all global ordering options for that key." [d, f,
i, n, r]
That is, the moment you use -k with r attached, then the global -n no
longer applies to that -k; to get both r and n behavior on a single key,
you have to attach both options to that -k:
$ printf '10 a\n1 b\n2 c\n' | LC_ALL=C sort -k1,1rn --debug
sort: using simple byte comparison
10 a
__
____
2 c
_
___
1 b
_
___
As such, I'm closing this bug report, now that we know the problem was a
usage error and not a bug in sort.
--
Eric Blake eblake <at> redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
This bug report was last modified 13 years and 215 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.