I am trying to sort a table based on the first value from smallest to largest with the gnu-coreutils sort command.
My table looks something like this:
file.txt
100,0.8,0.323, ... some more data
2,0.323,0,323, ...
4, ...
53, ...
.
.
121, ...
I have tried doing the following:
sort -n -k 1 file.txt
but I get things like...
10,0,10,10
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14
I want the logical numerical order.
Ted.
The correct invocation of sort might look like
$ sort -n -t , -k 1,1 file.txt
Explanation:
-n sort numerically-t , comma is field separator-k 1,1 sort on the first field file.txt input fileInvoking the above given program gives
10,0,10,10
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18
When sorting by fields it is very handy to use --debug option, just to make sure that sort works as expected.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With