Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Double Sort Rephrased

by mkmcconn (Chaplain)
on Jul 22, 2002 at 22:58 UTC ( #184278=note: print w/replies, xml ) Need Help??

in reply to Double Sort Rephrased
in thread Double Sort on a file

You want to sort the whole row as a string, then sort on the first column numerically, correct?

#!/usr/bin/perl -w use strict; my @sorted = map {$_->[0]} sort { $a->[0] cmp $b->[0] || $b->[1] <=> $a->[1] } map {[ $_ ,/(\w+)\s+(\w+)\s+(\w+)/]} <DATA> ; print for @sorted; __END__ 2 4 a 1 9 b 6 8 a


My mistake- I thought you were asking a perl perlfunc:sort question, rather than Gnu sort. (I also didn't realize that this was a mid-thread revision of the subj. line .). For a perl question, then you would be looking for...

my @sorted = map {$_->[0]} sort { $a->[3] cmp $b->[3] || # sorted ascending alpha on col 3 $b->[2] <=> $a->[2] # then sorted reverse num on col 2 } map {[ $_ ,/(\w+)\s+(\w+)\s+(\w+)/]} <DATA> ; print for @sorted;

(I think..)
Gnu sort's index starts with 0. The last column would be "2" not "3". Does this help, rchou2?

Replies are listed 'Best First'.
Re: Re: Double Sort Rephrased
by rchou2 (Novice) on Jul 22, 2002 at 23:03 UTC
    no, i have a file with the three columns, and i want to sort first based on the last column and then sort the second column numerically......and i need to sort the file....i tried using sort -k 3 -n -r -k 2 filein -o fileout but it didn' get the results i expected
      well, it is a perl question...i'm trying to modify the file through perl....
        sorry, i'm new to perl, so if some of the questions are obvious, i apologize.....what's the purpose of this line? map { $_ ,/(\w+)\s+(\w+)\s+(\w+)/} <DATA>

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://184278]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (7)
As of 2023-01-31 13:21 GMT
Find Nodes?
    Voting Booth?

    No recent polls found