假设我有一个包含以下内容的两列文件:
1 4
1 11
4 5
5 11我想删除所有的行,如果号码(从第一或第二列)发现在下一行,无论是在第一或第二列。
因此,我应该有这样的结果:
1 4
5 11我已经尝试使用awk或排序,但没有设法获得预期的结果。有什么可以做的吗?
提前谢谢。
发布于 2018-05-07 08:37:00
遵循awk可能会帮助您在同样的。
awk '{for(i=1;i<=NF;i++){if($i in a){next};a[$i]}} 1' Input_file发布于 2018-05-07 10:19:47
这可能对您有用(GNU sed):
sed -r ':a;N;/^(\S+) (\S+)\n((\1|\2) \S+)|(\S+ (\1|\2))$/s/\n.*//;ta;P;D' file将下一行追加到当前行。如果附加行具有当前行的任一值,则删除它并追加下一行。否则,打印然后删除当前行并重复。
https://stackoverflow.com/questions/50210059
复制相似问题