Hello,
I have this table:
chr1_16857_17742 - chr1 17369 17436 "ENST00000619216.1"; "MIR6859-1"; - 67
chr1_16857_17742 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 885
chr1_16857_18061 - chr1 17369 17436 "ENST00000619216.1"; "MIR6859-1"; - 67
chr1_16857_18061 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 1204
chr1_16857_18061 - chr1 17369 17436 "ENST00000619216.1"; "MIR6859-1"; - 67
chr1_16857_18061 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 1204
chr1_17232_18061 - chr1 17369 17436 "ENST00000619216.1"; "MIR6859-1"; - 67
chr1_17232_18061 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 829
chr1_17914_24891 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 6977
chr1_18267_29570 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 11303
where I need based on the first column go through all the instances with the same pattern and print out only the rows where the last column has MAX value.
Desired output:
chr1_16857_17742 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 885
chr1_16857_18061 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 1204
chr1_17232_18061 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 829
chr1_17914_24891 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 6977
chr1_18267_29570 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 11303
I tried this:
awk ' ! ( $1 in A_max ) { A_max[$1] = $NF } {A_max[$1] = ( A_max[$1] > $NF ? A_max[$1] : $NF )} END { for ( k in A_max ) print A_max[k], k }'
but I'm stuck on how to print out the whole row.
Would appreciate any help!