我有一个类似的输入表:

chr21    10861860    10862010    0.004580    1235
chr21    10896160    10896310    0.008635    928
chr21    10936080    10936230    0.004542    50
chr21    10972180    10972330    0.008600    1235
chr21    11059120    11059270    0.008133    2002
chr21    11101660    11101810    0.008360    468
chr21    11181780    11181930    0.004310    928


而且我需要一个Linux命令,该命令只能打印出该表的最后一列中共享公共元素的行。
在示例中,我需要以下命令才能打印出:

chr21    10861860    10862010    0.004580    1235
chr21    10896160    10896310    0.008635    928
chr21    10972180    10972330    0.008600    1235
chr21    11181780    11181930    0.004310    928


那是在最后一列中具有重复元素的行
我可以使用什么命令?

最佳答案

您可以先对第五列的数据进行排序。

$ sort -n -k5,5 data-file > file1


接下来,编写一个awk脚本来处理file1。如果第五字段与前一行相同,则写入输出。

如果要保留最终输出的顺序与输入相同,请向初始输入添加唯一键(例如,行号),然后根据行号对最终输出进行排序。

07-26 05:18