如何按照某个类别提取该类别对应数字的最大值

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]++' 
上一篇下一篇

猜你喜欢

热点阅读