bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24527: Problem while sorting comma separated values using sort comma


From: Bernhard Voelker
Subject: bug#24527: Problem while sorting comma separated values using sort command.
Date: Sat, 24 Sep 2016 17:35:12 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0

tag 24527 notabug
close 24527
stop

On 09/24/2016 11:44 AM, Jash Dave wrote:
> There is problem while sorting comma separated entries (specifically
> numbers). Even when the separator symbol is set to comma, it reads all
> following columns with numbers, and doesn't treats comma as separator
> between following numbers.
> 
> If I use command:
> sort -t"," -k1 -n Example.csv
> 
> Example.csv :
> 1,100,a,1,a
> 4,1000,d,4,c
> 3,1002,c,3,c
> 22,10,a,2,b
> 
> Output:
> 1,100,a,1,a
> 22,10,a,2,b
> 3,1002,c,3,c
> 4,1000,d,4,c
> 
> 
> Expected:
> 1,100,a,1,a
> 3,1002,c,3,c
> 4,1000,d,4,c
> 22,10,a,2,b
> 
> But it works with column 2 or 4, since there are no following numbers.

When having trouble with sort, usually the --debug option helps:

  $ sort --debug -t"," -k1 -n
  sort: using ‘en_US.UTF-8’ sorting rules
  sort: key 1 is numeric and spans multiple fields
  1,100,a,1,a
  4,1000,d,4,c
  3,1002,c,3,c
  22,10,a,2,b
  1,100,a,1,a
  ______
  ___________
  22,10,a,2,b
  ______
  ___________
  3,1002,c,3,c
  _______
  ____________
  4,1000,d,4,c
  _______
  ____________

Aha, the key spans multiple fields.
As you want to sort on the first field only, you need to
tell sort to do so:

  $ sort --debug -t"," -k1,1 -n
  sort: using ‘en_US.UTF-8’ sorting rules
  1,100,a,1,a
  4,1000,d,4,c
  3,1002,c,3,c
  22,10,a,2,b
  1,100,a,1,a
  _
  ___________
  3,1002,c,3,c
  _
  ____________
  4,1000,d,4,c
  _
  ____________
  22,10,a,2,b
  __
  ___________

Therefore, I'm marking this as not a bug in sort.

Thanks & have a nice day,
Berny





reply via email to

[Prev in Thread] Current Thread [Next in Thread]