Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
Hi.
Here is an alternate solution. The utility msort has an interesting sort-field key called a hybrid. Essentially, it breaks apart a key-field into sub-fields. It then sorts the sub-fields as character unless the field is numeric, in which case it sorts as a numeric. The header and trailer lines in this data file have no second field, so a pair of perl scripts adds the field to request and response lines, and removes the second field after the hybrid sort. So for the perl add action, the lines would become:
ready for input into msort.
producing:
Files f1 and f2 show the intermediate form of the data and can be discarded for production work.
See the link in the script for msort if it is not in an accessible repository. Fedora, Debian, FreeBSD have it, for example.
With the sample data, that sort command is not performing a numerical sort. Since the first character of the line is not the beginning of a numeric string, all lines compare equal, as if they all had a leading zero, and then they are compared lexicographically to break the tie. [10:1] will incorrectly precede [2:1].
The T test will always succeed -- since the n command will always reset the tested condition -- so it could be replaced with d (since -n is in effect), in which case the sed script would be portable (instead of GNU specific).
The following is a reimplementation of drl's suggestion. Instead of using perl and msort to decorate-sort-dedecorate, it uses sed and sort:
Regards,
Alister
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)
Hello All,
I was wondering if someone might know how to do this. I have a word list that is format like the example below. I need to take away the :number after that... is there some kind of command I could use to remove them?
123456:5562
password:1507
123456789:989
qwerty:877... (7 Replies)
Experts, how to sort this fields with numerical order :
-How to use the sort command in this case, I was thinking with -k but it is not working,
lan5000
lan5000:1
lan5000:10
lan5000:11
lan5000:12
lan5000:13
lan5000:14
lan5000:15
lan5000:16
lan5000:17 ... (6 Replies)
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)
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)
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)
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)
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)
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... (5 Replies)