[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