linux:删除指定列重复的行

现在有文件file.txt, 如下所示:

header1 header2
chr10_10000018 chr11
chr10_10000018 chr12
chr10_100000625 chr10
chr10_100000645 chr11
chr10_100001867 chr11

可以看到,第一列的chr10_10000018存在重复的值,分别位于第一行和第二行,现在只希望保留第一行,变成如下文件file1.txt所示:

header1 header2
chr10_10000018 chr11
chr10_100000625 chr10
chr10_100000645 chr11
chr10_100001867 chr11

则可以用命令:

tail -n +2 file.txt | sort -k1,1 -V | sort -uk1,1 -V > file1.txt

tail -n +2 指的是header不参与排序;

原文地址:https://www.cnblogs.com/chenwenyan/p/15652013.html