How to sort a string with numbers


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to sort a string with numbers
# 1  
Old 12-21-2007
How to sort a string with numbers

Hi,

I need help to sort a file contents.

I am using sort -r option to basically reverse the comparison in descending order. However, i found out that my file is not sorted according, can anyone please help.

My data is something like:-
Hello world
20.982342864 343
19.234355545 222
1.5567846 345
17.8767787 200

If I use the option -g or -n it works..but it is in ascending order. but I would like to display in descending order.I tried -nr but the Hello world line would be reverse as well as the last item.

My desired output would be
Hello world
20.982342864 343
19.234355545 222
17.8767787 200
1.5567846 345


Thanks.

Last edited by ahjiefreak; 12-21-2007 at 01:48 AM..
# 2  
Old 12-21-2007
Try...
Code:
awk 'NR==1; NR>1{print|"sort -rn"}' file1

# 3  
Old 12-21-2007
Code:
# more file
Hello world
20.982342864 343
19.234355545 222
1.5567846 345
17.8767787 200

# sort -r file
Hello world
20.982342864 343
19.234355545 222
17.8767787 200
1.5567846 345

# echo $LC_CTYPE
en_US.UTF-8

# 4  
Old 12-21-2007
Quote:
Originally Posted by ahjiefreak
Hi,

I need help to sort a file contents.

I am using sort -r option to basically reverse the comparison in descending order. However, i found out that my file is not sorted according, can anyone please help.

My data is something like:-
Hello world
20.982342864 343
19.234355545 222
1.5567846 345
17.8767787 200

If I use the option -g or -n it works..but it is in ascending order. but I would like to display in descending order.I tried -nr but the Hello world line would be reverse as well as the last item.

My desired output would be
Hello world
20.982342864 343
19.234355545 222
17.8767787 200
1.5567846 345


Thanks.
Code:
sort -r -k 1,1 file

# 5  
Old 12-21-2007
What you need to do is tell "sort" that you want to sort numerically instead of alphabetically: "1,2,13,20" is sorted numerically, alphabetically sorted it would look like "1,13,2,20", because "1" comes before "2" in the "alphabet" (the ASCII code) the sort command uses. Aphabetical sorting is the default, numerical sorting can bei achieved by using the option "-n" as you have already found out. If you want to reverse the sorting you have to use "-r" as you have already noticed too. So combine these two to get:

Code:
"cat file | sort -rn"

to get the desired result.

bakunin
# 6  
Old 12-21-2007
Quote:
Originally Posted by bakunin
Code:
"cat file | sort -rn"

Code:
# sort -rn file
20.982342864 343
19.234355545 222
17.8767787 200
1.5567846 345
Hello world

my output puts the "hello world" at the bottom, which is not what OP wants. is your output the same?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sort only numbers within a string

Hi, I am having contents in a file like below, cat testfile rpool/swap rpool/swap14 rpool/swap2 rpool/swap3 I want to sort the above contents like, rpool/swap rpool/swap2 rpool/swap3 rpool/swap14 I have tried in this way, (7 Replies)
Discussion started by: Sumanthsv
7 Replies

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. Shell Programming and Scripting

How to Sort Floating Numbers Using the Sort Command?

Hi to all. I'm trying to sort this with the Unix command sort. 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: user3:12345687:5.5:2.5:6:1:3:2... (7 Replies)
Discussion started by: daniel.gbaena
7 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