#!/bin/bash
file=$1
paste <(join -1 1 -2 2 -o 1.1 2.1 "$file" \
<(cut -f1,2 "$file" | sort -k2nr | nl | sort -k2) ) \
<( cut -f1,3 "$file" | sort -k2nr | nl | sort -k2 | cut -f1)
####
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
# Read the input.
my @input;
while (<>) {
push @input, [ split ];
}
# Sort by columns, save the line number.
my @output = map [ $_->[0] ], @input;
for my $c (1, 2) {
my $x = 1;
$output[$_][$c] = $x++ for sort { $input[$b][$c] <=> $input[$a][$c] } 0 .. $#input;
}
# Print the line numbers using the original order.
for my $l (0 .. $#input) {
say join "\t", @{ $output[$l] };
}
####
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord
}map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,