GNU bug report logs - #66253
sort manpage should be more explicit

Previous Next

Package: coreutils;

Reported by: Jorge Stolfi <stolfi <at> ic.unicamp.br>

Date: Thu, 28 Sep 2023 10:17:03 UTC

Severity: normal

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 66253-done <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Jorge Stolfi <stolfi <at> ic.unicamp.br>, 66253-done <at> debbugs.gnu.org
Subject: Re: bug#66253: sort manpage should be more explicit
Date: Thu, 28 Sep 2023 12:22:35 +0100
On 28/09/2023 11:11, Jorge Stolfi wrote:
> The full documentation of sort explains that numeric sorting (as in
> "sort -n") accepts a leading "-" sign, decimal points, thousands
> separators, etc, but does not accept an explicit "+" sign. Values with
> explicit "+" are treated as numeric 0 and ties are broken by alpha sort.
> 
> However, the manpage only says that "-n" "compares according to string
> numerical value" -- and one would expect the numerical value of "+100"
> to be 100, not zero.
> 
> It took me an hour to figure out that my "sort -n" was failing because
> of this "feature".  Surely many users have wasted time too, or worse.
> So please either
> 
> 1) explain precisely IN THE MANPAGE what is a valid number;
> 
> 2) make numeric sort accept a leading "+", as users would expect;
> 
> 3) make numeric sort abort with an error message if any field that is
> supposed to be sorted numerically is not a valid number.
> 
> I think the best solution for users would be to implement all three of
> these...
> 
> Thank you, and all the best

Note the --debug option really helps with all this:

  $ printf '%s\n' '+4' ' 5' '-1,2.3' | sort -s -n --debug
  sort: note numbers use ‘.’ as a decimal point in this locale
  -1,2.3
  ______
  +4
  ^ no match for key
   5
   _


In saying that, sorting numbers is such a common use case,
it's probably worth adding an extra couple of lines to the man page.
I think I'll apply the following later:

  -n, --numeric-sort          compare according to string numerical value.
                                leading blanks, negative sign, decimal point,
                                and thousands separators are supported.

cheers,
Pádraig




This bug report was last modified 1 year and 235 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.