On 09/10/2025 01:45, Collin Funk wrote:
Pádraig Brady <[email protected]> writes:

On 08/10/2025 07:55, Jim Meyering wrote:
On Wed, Oct 8, 2025 at 12:37 AM Pádraig Brady <[email protected]> wrote:
...
Yes I think this feature is useful. I think the standards
also mention a preference to avoid line breaks between numbers,
and so NBSP might be good to support as an option also.

So we could have an optional argument like: --suffix-space[=CHAR]

Supporting:

    --suffix-space            # ASCII space
    --suffix-space=$'\u00A0'  # Non breaking space
    --suffix-space=$'\u202F'  # Narrow NBSP
Maybe --suffix-separator= or even just --separator= ?

Yes that is more accurate.

BTW, originally I envisaged that --format would be central to numfmt,
and you would get the flexibility through its arguments.

However currently we take anything after the "%f" as _after_ the suffix:

   $ printf '123412G 1234123G\n' |
     numfmt --from=auto --to=si --field=1,2 --format=$'[%f\u00A0]'
   [124T ] [    1.3P ]

Given any string is accepted after the %f directive,
I'm not sure it's practical to change that now.
So --suffix-separator seems like the best option.

I find --separator to be easier to type than the other options.

Can we just have it behave like 'seq --separator' does?

     $ seq --separator=abc 3
     1abc2abc3

I don't see why you would want to use anything other than spaces, but I
also don't see much point in limiting the separator to only spaces.
Agreed we should allow a string.

To recap, processed numbers have 3 components.
For e.g. "1.234GiB" has:

  float  = 1.234
  Unit   = Gi
  Suffix = B

So I suppose to be most accurate this would be --unit-separator.
Suffix separation is already handled with the --suffix option. For e.g.:

  $ numfmt --to=si --to-unit=G --to=si --suffix=' billion' 12341324123412
  13k billion

Given we've field,unit,suffix separators then
I think it's best to be specific with:

  --unit-separator=STRING

I'll work on that for review.

cheers,
Padraig

Reply via email to