我理解使用awk '!a[$0]++' file
删除剩余原始订单的重复行,但是这样的命令适用于整个文件,但我想对指定的行执行此操作。
例如,我有一个文件LINE
列出了几行:
line1
line2
line3
我想删除另一个文件LINES
中FILE
中列出的重复行。例如,FILE
有这样的行:
line1
line2
line3
line4
line4
line4
line1
line1
line2
line3
删除后,由于line4
不在LINES
,因此前六行仍然存在,因此不会清除它的重复。
非常感谢您的帮助!
答案 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