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

Extract only two matches per unique line and discard more than 3 duplicates

我想提取最多出现 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 但它们没有提供我想要的。 感谢您的帮助。

用awk

awk '{a[]++}a[]<3{print}' infile
awk '++_[] < 3' input_file

ctac_answer 的简化版本