如果多个模式出现在不同的行中,则从文件中删除行

remove line from file if more than one pattern appears in different line

我有一个格式如下的文件:

1 1 1 2 0 1 0.5
1 2 2 2 0 2 0.5
2 1 1 1 0 1 0.25
2 1 2 2 0 2 0.5
2 3 3 3 0 3 0.25

如果文件中的另一行具有相同的最后两个条目,我想删除一行。在上面的示例中,这意味着应该删除第 4 行:

1 1 1 2 0 1 0.5
1 2 2 2 0 2 0.5
2 1 1 1 0 1 0.25
2 3 3 3 0 3 0.25

我无法理解如何通过命令行或简单的 awk/sed 脚本执行此操作。非常感谢任何帮助!

尝试:

 sort -k 6 f1.txt  | uniq -f 5

假设行的原始顺序无关紧要。

awk '!a[$NF,$(NF-1)]++' file

创建一个数组并检查它是否已经填充了最后两个字段。