Skip to main content
 首页 » 编程设计

python之如何只打印具有唯一字段的行

2025年05月04日12sky-heaven

例如...如果我有这样一个文件:

A   16  chr11   36595888 
A   0   chr1    155517200 
B   16  chr1    43227072 
C   0   chr20   55648508 
D   0   chr2    52375454 
D   16  chr2    73574214 
D   0   chr3    93549403 
E   16  chr3    3315671 

我只需要打印具有唯一第一列的行:

B   16  chr1    43227072 
C   0   chr20   55648508 
E   16  chr3    3315671 

它类似于 awk '!_[$1]++',但我想删除所有具有非唯一拳头字段的行。

最好是 Bash 和 python 解决方案。

请您参考如下方法:

在 bash 中,假设第一列已固定为 (3):

sort input-file.txt | uniq -u -w 3 

'-u' 选项只打印独特的行,'-w 3' 只比较前 3 个字符。