如何删除指定行的重复行,而不进行排序?

时间:2016-05-12 18:38:24

标签: shell awk

我理解使用awk '!a[$0]++' file删除剩余原始订单的重复行,但是这样的命令适用于整个文件,但我想对指定的行执行此操作。

例如,我有一个文件LINE列出了几行:

line1
line2
line3

我想删除另一个文件LINESFILE中列出的重复行。例如,FILE有这样的行:

line1
line2
line3
line4
line4
line4
line1
line1
line2
line3

删除后,由于line4不在LINES,因此前六行仍然存在,因此不会清除它的重复。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以编写类似

的内容
awk 'FNR==NR{lines[$0]++; next} lines[$0]++ < 2' lines file
$ awk 'FNR==NR{lines[$0]++; next} lines[$0]++ < 2' lines file
line1
line2
line3
line4
line4