我想检查第 2 列中的重复记录并删除 awk 中的这些行
create a
delete a
create b
create c
delete c
create d
delete f
create f
create g
create h
预期输出
create b
create d
create g
create h
尝试使用此命令在 awk 上但得到其他方式,但不是确切的结果
注意:AWK不是强制性的
awk -F" " '{ if( (++count[$2]==2) ) print }'
答案1
我假设“重复记录”是指在连续行上重复。如果不是,并且您想要考虑整个文件中的唯一记录,则首先对第二个字段的数据进行排序 ( sort -k 2,2 file
)。
使用uniq
:
$ uniq -f 1 -u file
create b
create d
create g
create h
这在进行比较时会忽略第一个空白分隔字段 ( -f 1
),然后输出所有符合的行不是在连续行上重复 ( -u
)。