Input file
SFSQW 5192.56
HNRNPK 611.486
QEQW 1202.15
ASDR 568.627
QWET 6382.11
SFSQW 4386.3
HNRNPK 100
SFSQW 500
Desired output file
SFSQW 10078.86 3
QWET 6382.11 1
QEQW 1202.15 1
HNRNPK 711.49 2
ASDR 568.63 1
The way I tried:
awk '{a[$1]+=$2}END{for (i in a){printf "%s\t%.2f\n",i,a}}' input_file.txt | sort -nrk2 > tmp.txt
awk '{print $1}' tmp.txt | sort | uniq -c | awk '{print $2"\t"$1}' > tmp2.txt
perl -e ' $col1=0; $col2=0; ($f1,$f2)=@ARGV; open(F2,$f2); while (<F2>) { s/\r?\n//; @F=split /\t/, $_; $line2{$F[$col2]} .= "$_\n" }; $count2 = $.; open(F1,$f1); while (<F1>) { s/\r?\n//; @F=split /\t/, $_; $x = $line2{$F[$col1]}; if ($x) { $num_changes = ($x =~ s/^/$_\t/gm); print $x; $merged += $num_changes } } ' tmp.txt tmp3.txt | awk '{print $1"\t"$2"\t"$4}' > desired_output.txt
SFSQW 10078.86 3
QWET 6382.11 1
QEQW 1202.15 1
HNRNPK 711.49 2
ASDR 568.63 1