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

标签 linux awk grep uniq

我想提取最多出现 2 次的名称。在第 1 列上。如果它出现超过 2 次,那么我只需要获取前 2 次。 例如。 文件1.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 '++_[$1] < 3' input_file

ctac_answer 的简化版

关于linux - 每个唯一行仅提取两个匹配项并丢弃超过 3 个重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47999868/

相关文章:

c - 调试了4个小时,还是找不到BUG

ruby - 在 linux 上运行 ruby​​ 规范时出现未初始化的常量错误,而不是在 windows 上

python - 如何让一个脚本在linux中一直运行?

linux - 构建 LFS - 5.7 : Need linker with . init_array/.fini_array 支持时出错

shell - grep 文件中的最后 n 个匹配项

linux - 如何使用 grep 和 awk 提取特定值?

linux - Awk:如何用新行构建一个字符串变量?

awk OR 语句

awk - 打印大文件中前 N 行满足特定条件的每一行

linux - 使用 linux 终端检查文件是否在文件夹或其子文件夹中