如何按照某个类别提取该类别对应数字的最大值
2021-06-14 本文已影响0人
宗肃書
比如我有一列数据如下
transcript/1 KAF7475139.1 71.6 1169 293 13 3874 7311 1282 2434 0.0e+00 1255.7
transcript/1 KAF2974030.1 98.4 63 1 0 1144 1332 65 127 1.2e-31 146.0
transcript/1 EAW56719.1 92.1 63 5 0 1144 1332 123 185 8.6e-30 139.8
transcript/10 XP_029897274.1 40.5 1265 611 37 247 3852 104 1289 3.3e-196 692.6
transcript/10 KAF1537437.1 40.1 1272 612 36 238 3852 9 1197 1.2e-193 684.1
我想找一个转录本对应的某一列的最大值
为了尽可能简短的命令来得到我想要的结果,我的思路如下:
1.首先分类别的第一列按照字符串排序
2.含有对应值的那一列按照数值降序
3.对第一列字符进行去重,得到去重之前的首行数据作为输出结果
- 用下面这条命令
sort -k1,1 -k12,12nr test.txt |awk '!a[$1]++'