How to Sort Floating Numbers Using the Sort Command?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to Sort Floating Numbers Using the Sort Command?
# 1  
Old 05-16-2010
How to Sort Floating Numbers Using the Sort Command?

Hi to all.

I'm trying to sort this with the Unix command sort.
Code:
user1:12345678:3.5:2.5:8:1:2:3
user2:12345679:4.5:3.5:8:1:3:2
user3:12345687:5.5:2.5:6:1:3:2
user4:12345670:5.5:2.5:5:3:2:1
user5:12345671:2.5:5.5:7:2:3:1

I need to get this:

Code:
user3:12345687:5.5:2.5:6:1:3:2
user4:12345670:5.5:2.5:5:3:2:1
user2:12345679:4.5:3.5:8:1:3:2
user1:12345678:3.5:2.5:8:1:2:3
user5:12345671:2.5:5.5:7:2:3:1

I want to sort it at first by the third row, at second by the fourth row and at least by the fifth row (using ":" as separator). To do it I'm trying to use this (but it doesn't works):

Code:
cat file_contains_example | sort -nr -t":" -k3 -k4 -k5

What can't I do to solve this problem? (I prefer to use sort)

Thank's for read.

Last edited by radoulov; 05-16-2010 at 10:27 AM.. Reason: Added code tags.
# 2  
Old 05-16-2010
-k 3 means that field is from 3th to the end of line. 3,3 means only field 3.
Code:
cat file | sort  -t :  -k 3,3nr -k 4,4nr -k 5,5nr

# 3  
Old 05-16-2010
Quote:
Originally Posted by kshji
-k 3 means that field is from 3th to the end of line. 3,3 means only field 3.
Code:
cat file | sort  -t :  -k 3,3nr -k 4,4nr -k 5,5nr

Hi kshji and thanks for asking so fast.

Sorry but I tried your code and don't sort the floating numbers.

Any other suggestions?

Last edited by daniel.gbaena; 05-16-2010 at 08:01 AM..
# 4  
Old 05-16-2010
Works fine for me.
How does it sort in your case ?

Quote:
Originally Posted by daniel.gbaena
...
I need to get this:

user3:12345687:5.5:2.5:6:1:3:2
user4:12345670:5.5:2.5:5:3:2:1
user2:12345679:4.5:3.5:8:1:3:2
user1:12345678:3.5:2.5:8:1:2:3
user5:12345671:2.5:5.5:7:2:3:1


I want to sort it at first by the third row, at second by the fourth row and at least by the fifth row (using ":" as separator)....
Here's the test -

Code:
$ 
$ 
$ cat -n f9
     1    user1:12345678:3.5:2.5:8:1:2:3
     2    user2:12345679:4.5:3.5:8:1:3:2
     3    user3:12345687:5.5:2.5:6:1:3:2
     4    user4:12345670:5.5:2.5:5:3:2:1
     5    user5:12345671:2.5:5.5:7:2:3:1
$ 
$ sort  -t : -k 3,3nr -k 4,4nr -k 5,5nr f9
user3:12345687:5.5:2.5:6:1:3:2
user4:12345670:5.5:2.5:5:3:2:1
user2:12345679:4.5:3.5:8:1:3:2
user1:12345678:3.5:2.5:8:1:2:3
user5:12345671:2.5:5.5:7:2:3:1
$ 
$ 

What's your OS and sort version ? Do you have GNU sort ?

tyler_durden
# 5  
Old 05-16-2010
Quote:
user1:12345678:3.5:2.5:8:1:2:3
user2:12345679:4.5:3.5:8:1:3:2
user3:12345687:5.5:2.5:6:1:3:2
user4:12345670:5.5:2.5:5:3:2:1
user5:12345671:2.5:5.5:7:2:3:1
Hi durden_tyler.

The example that I left don't show the error. If you test with this other example.
Code:
user1:12345678:3.5:2.5:8:1:2:3
user2:12345679:4.5:3.5:8:1:3:2
user3:12345687:5.5:2.6:5.1:1:3:2
user4:12345670:5.5:2.5:5.2:3:2:1
user5:12345671:2.5:5.5:7:2:3:1

You can test that the code doesn't work with the decimals.

Quote:
What's your OS and sort version ? Do you have GNU sort ?
About the other questions, I'm using GNU sort and my kernel version is 2.6.12-9-386.

Last edited by radoulov; 05-16-2010 at 10:33 AM.. Reason: Added code tags.
# 6  
Old 05-16-2010
Please post the output you get, given the above input data.

Last edited by radoulov; 05-16-2010 at 11:30 AM..
# 7  
Old 05-16-2010
Example
Code:
user1:12345678:3.5:2.5:8:1:2:3
user2:12345679:4.5:3.5:8:1:3:2
user3:12345687:5.5:2.5:6:1:3:2
user4:12345670:5.5:2.5:5:3:2:1
user4:12345670:15.5:2.5:5:3:2:1
user4:12345670:15.4:2.5:5:3:2:1
user4:12345670:15.32:2.5:5:3:2:1
user4:12345670:15.62:2.5:5:3:2:1
user5:12345671:2.5:5.5:7:2:3:1

I got ok result.
In some environment decimal delimiter is , or something else
=> change LANG=C before sort, = delimiter is .
This User Gave Thanks to kshji For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sort strings with numbers

I want to sort my data first by the 2nd field then by the first field. I can't use sort -V because I don't have gnu sort and cannot install one. How do I go about this? Input: G456 KT1 34 K234 KT10 45 L2 KT2 26 H5 LAF2 28 F3 LAF2 36 Output: G456 KT1 34 L2 KT2 26 K234 KT10 45 F3... (14 Replies)
Discussion started by: aydj
14 Replies

2. Shell Programming and Scripting

Help: Sorting the numbers without using sort command

Hi, I've got two arrays 1 3 5 7 2 4 6 8 and i need to write a shell script to get the output 1 2 3 4 5 6 7 8 without using sort or bubble sort. (1 Reply)
Discussion started by: web2moha
1 Replies

3. Shell Programming and Scripting

Sort based on numbers

I have a file which has the following data :- how can I sort the data in descending order . My files may have the first column with 1 to 10000 numbers .I need to arrange them in descending order . Thanks (2 Replies)
Discussion started by: lazydev
2 Replies

4. Shell Programming and Scripting

how to sort numbers

I have files like this: 1 3 4 6 14 3 6 I want to extract the highest number. I have tried using cat filename | sort but then 9 would become higher than 14. So how do I sort? (1 Reply)
Discussion started by: locoroco
1 Replies

5. Shell Programming and Scripting

Sort numbers which has colon (:) in between

Although i tried multiple option i couldn't find a way to get the rigt ouput. Say i have the following data cat file.txt C request C response C request C response The output should look like (9 Replies)
Discussion started by: varu0612
9 Replies

6. Shell Programming and Scripting

How to sort version numbers?

I would like to know how to sort version numbers, using bash or perl. I would like to sort file names that are program names with version numbers and extensions, such as hello-0.2.3.tar.gz and hello-0.10.3.tar.gz. Version numbers of computer programs do not comply with the mathematical rule... (3 Replies)
Discussion started by: LessNux
3 Replies

7. Shell Programming and Scripting

Is it Possible to sort a list of hexadecimal numbers using "sort" command?

Hello Everybody :) !!!. i have question in mind, is it possible to sort a list of hexadecimal numbers using "sort" command? (9 Replies)
Discussion started by: Kesavan
9 Replies

8. Shell Programming and Scripting

Sort numbers

Hello, okey so my script is using 4 variables that are either empty or numbers in the following format: NUMBER_1 NUMBER_2 NUMBER_3 NUMBER_4 So they're basically separated by a space and I need to echo the lowest number, so far I've been doing it like this: echo "2 3 1 3" | tr " "... (6 Replies)
Discussion started by: TehOne
6 Replies

9. UNIX for Dummies Questions & Answers

sorting numbers with sort -n

Looking for help for sort, I learned that for sorting numbers I use: sort -n but it seems that that is not enough when you have numbers like 0.2000E+7 for example, sort -n will not worry about the E+7 part, and will just sort the numbers like 0.2000. Exapmle: cat example.txt .91000E+07... (9 Replies)
Discussion started by: cosmologist
9 Replies

10. Shell Programming and Scripting

Sort by numbers, then alphabetically

Hey guys, I have a file that contains the following: 366 K 364 Q 12 UB 7 INC. P 4 Law 2 LAMB 2 High 1 QEG 1 OF 1 LC 1 B As you can see, it's already sorted by numerical order, how do I sort it again, breaking the ties by using the alphabetical order of the second column, but... (2 Replies)
Discussion started by: Andrew9191
2 Replies
Login or Register to Ask a Question

Featured Tech Videos