[Bug 2125504] Re: /usr/bin/sort: -k option does not behave as GNU's sort

Marco Trevisan (Treviño) 2125504 at bugs.launchpad.net
Fri Nov 21 06:08:42 UTC 2025


I was checking this, but it seems is weird on the GNU side too:

❯ sort -k3 cnt-sort         
17 new1 5434 online postgres /var/lib/postgresql/17/new1 /var/log/postgresql/postgresql-17-new1.log
17 old  5435 online postgres /var/lib/postgresql/17/old /var/log/postgresql/postgresql-17-old.log
17 new2 5440 online postgres /var/lib/postgresql/17/new2 /var/log/postgresql/postgresql-17-new2.log

❯ LC_ALL=C sort -k3 cnt-sort                        
17 old  5435 online postgres /var/lib/postgresql/17/old /var/log/postgresql/postgresql-17-old.log
17 new1 5434 online postgres /var/lib/postgresql/17/new1 /var/log/postgresql/postgresql-17-new1.log
17 new2 5440 online postgres /var/lib/postgresql/17/new2 /var/log/postgresql/postgresql-17-new2.log

So when using my locale (it_IT.UTF-8) is behaving differently...

But this is stated on the --help too:

*** WARNING ***
The locale specified by the environment affects sort order.
Set LC_ALL=C to get the traditional sort order that uses
native byte values.

So basically we should make the rust side locale-affected too!

---

This should be handled in https://github.com/uutils/coreutils/pull/9176

** Bug watch added: github.com/uutils/coreutils/issues #9148
   https://github.com/uutils/coreutils/issues/9148

** Also affects: rust-coreutils via
   https://github.com/uutils/coreutils/issues/9148
   Importance: Unknown
       Status: Unknown

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rust-coreutils in Ubuntu.
https://bugs.launchpad.net/bugs/2125504

Title:
   /usr/bin/sort: -k option does not behave as GNU's sort

Status in rust-coreutils:
  Unknown
Status in rust-coreutils package in Ubuntu:
  Confirmed

Bug description:
  As discussed in LP: #2125057, when GNU's sort takes the following
  input

  ```
  17 new1 5434 online postgres /var/lib/postgresql/17/new1 /var/log/postgresql/postgresql-17-new1.log
  17 new2 5440 online postgres /var/lib/postgresql/17/new2 /var/log/postgresql/postgresql-17-new2.log
  17 old  5435 online postgres /var/lib/postgresql/17/old /var/log/postgresql/postgresql-17-old.log
  ```

  and sorts it with `-k3`, it outputs:

  ```
  17 new1 5434 online postgres /var/lib/postgresql/17/new1 /var/log/postgresql/postgresql-17-new1.log
  17 old 5435 online postgres /var/lib/postgresql/17/old /var/log/postgresql/postgresql-17-old.log
  17 new2 5440 online postgres /var/lib/postgresql/17/new2 /var/log/postgresql/postgresql-17-new2.log
  ```

  while uutils' sort outputs:

  ```
  17 old 5435 online postgres /var/lib/postgresql/17/old /var/log/postgresql/postgresql-17-old.log
  17 new1 5434 online postgres /var/lib/postgresql/17/new1 /var/log/postgresql/postgresql-17-new1.log
  17 new2 5440 online postgres /var/lib/postgresql/17/new2 /var/log/postgresql/postgresql-17-new2.log
  ```

  Note that he line being sorted in the first position has an additional space before the third field ("  5435").
  It seems that uutils' sort is including that second space in the string being sorted, while GNU's sort ignores it.

To manage notifications about this bug go to:
https://bugs.launchpad.net/rust-coreutils/+bug/2125504/+subscriptions




More information about the foundations-bugs mailing list