linux - 删除重复行但保留前 2 个实例

标签 linux bash awk gawk

我有一个包含重复行的列,然后我想删除但保留前 2 个实例。

删除重复2次以上的重复行

示例输入

i 10
i 10
a 12
a 12
b 12
b 12
c 14
c 14
x 14
x 14
y 14
y 14
a 14
a 14
n 13
n 13
m 13
m 13
x 13
x 13

需要的输出。

i 10
i 10
a 12
a 12
c 14
c 14
n 13
n 13

我试过了

awk '!a[$2]++' file

感谢您的帮助

最佳答案

我认为您的命令的问题在于您正在检查它是否是第一个,而不是检查它是否是前两个命令中的一个。这样的事情应该有效:

awk 'a[$2]++<2' file

关于linux - 删除重复行但保留前 2 个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47601249/

相关文章:

bash - 登录SSH后执行一条语句

linux - 如何用文件 2 中的分类号替换文件 1 中的一列(文本单词)

python - 删除重复项,但根据不同列中的排序保留一个

linux - 如何将动画 3D 场景渲染为 h.264 流?

linux - Bash - 获取两个字符之间的字符串

bash - 根据 key 从文件中读取最近的条目

arrays - 使用长分隔符将字符串拆分为 bash 中的数组

regex - 如何根据给定的字母数显示单词?

linux - 使用 AZURE 从 Windows 远程访问 Linux 虚拟机时出现连接错误

linux - 如何在 makefile 中运行 ./configure 脚本