【发布时间】:2016-09-02 01:11:37
【问题描述】:
我有一个大约 8,000,000 行的大文件 (my_file.txt),如下所示:
1 13110 13110 rs540538026 0 NA -1.33177622457982
1 13116 13116 rs62635286 0 NA -2.87540758021667
1 13118 13118 rs200579949 0 NA -2.87540758021667
1 13013178 13013178 rs374183434 0 NA -2.22383195384362
1 13013178 13013178 rs11122075 0 NA -1.57404917386838
我想根据前三列找到重复项,然后删除第 7 列中值较低的行,我可以完成的第一部分:
awk -F"\t" '!seen[$2, $3]++' my_file.txt
但我不知道如何删除具有较低值的重复项,所需的输出将是这个:
1 13110 13110 rs540538026 0 NA -1.33177622457982
1 13116 13116 rs62635286 0 NA -2.87540758021667
1 13118 13118 rs200579949 0 NA -2.87540758021667
1 13013178 13013178 rs11122075 0 NA -1.57404917386838
速度是个问题,所以我可以使用 awk、sed 或其他 bash 命令 谢谢
【问题讨论】: