【发布时间】:2019-02-05 03:56:03
【问题描述】:
我有一个具有这种格式内容的文件:
1 6 8
1 6 9
1 12 20
1 6
2 8
2 9
2 12
2 20
2 35
如果在下一行中找到数字(来自第 2 列或第 3 列但不是来自第 1 列),无论它是在第 2 列还是第 3 列,包括找到初始数字的行,我想删除所有行。
我应该将其作为输出:
2 35
我尝试过使用:
awk '{for(i=2;i<=NF;i++){if($i in a){next};a[$i]}} 1'
但它似乎不起作用。
怎么了?
【问题讨论】:
-
OP 应该解释“在 next 行中找到”。是“跟随”的意思吗?如果为真,则仅应删除示例中的前 3 行。
-
什么是你的例子不起作用,你得到什么输出。
-
例如:第一行包含 6 和 8,这些数字也出现在第 2 行、第 4 和第 5 行。因此,应删除第 1、2、4 和 5 行等。在这种情况下,应仅保留最后一行,即 (2,35)