每个唯一行仅提取两个匹配项,并丢弃超过3个重复项

问题描述 投票:0回答:2

我想提取最多2次出现的名字。第1列。如果它发生超过2次,那么我只需要获得第2列。例如。 FILE1.TXT

10000040 1-120 10000040 541-660 10000040 91-210 10000042 1-120 10000043 541-660 10000048 1-120 10000049 1-120 10000049 181-300 10000049 271-390 10000049 361-480

从上面的文件,我想要这样的东西:10000040 1-120 10000040 541-660 10000042 1-120 10000043 541-660 10000048 1-120 10000049 1-120 10000049 181-300

我尝试过uniq和-D但是他们没有给出我想要的东西。谢谢你的帮助。

linux awk grep uniq
2个回答
0
投票
awk '++_[$1] < 3' input_file

缩短版的ctac_回答


0
投票

用awk

awk '{a[$1]++}a[$1]<3{print}' infile
© www.soinside.com 2019 - 2024. All rights reserved.