每个唯一行仅提取两个匹配项并丢弃超过 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 的简化版本
我想提取最多出现 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 的简化版本