0

我想从具有 3 列的数据集中删除重复项

A       0   3238
B       0   3367
C       0   3130
D       1   3130

我需要删除第三列中包含重复值的行,但优先保留第二列中值为“1”的行。我知道如何使用 awk 删除重复项,但我不知道如何添加条件语句。

谢谢

4

2 回答 2

3

试试这条线:

awk '{if($3 in a)a[$3]=$2==1?$0:a[$3];else a[$3]=$0}END{for(i in a)print a[i]}' file
于 2013-08-26T14:07:19.050 回答
3
$ sort -k2nr file | awk '!seen[$3]++'
D       1   3130
A       0   3238
B       0   3367
于 2013-08-26T15:27:14.233 回答