[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