我有一个文件如下
cat file
a 1
a 2
b 3
我想删除1行和2行,因为它的第一列是相同的。
我尝试了cat file|uniq -f 1
,即可获得所需的输出。但我想从文件中删除它。
答案 0 :(得分:1)
awk 'NR==FNR{a[$1]++;next}a[$1]==1{print}' file file
这种单线程可满足您的需求。无论您的文件是否已排序。
这个单行将处理文件两次,第一次记录(在哈希表中,键:第一列,值:出现)第一列的重复行,在第二列中,检查第一列是否哈希表有value==1
,如果是,则打印。因为这些线是相对于col1的唯一线。