我想从具有3列
的数据集中删除重复项A 0 3238
B 0 3367
C 0 3130
D 1 3130
我需要删除第三列中包含重复值的行,但优先保留第二列中值为“1”的行。我知道如何使用awk删除重复项,但我无法弄清楚如何添加条件语句。
谢谢
答案 0 :(得分: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
答案 1 :(得分:3)
$ sort -k2nr file | awk '!seen[$3]++'
D 1 3130
A 0 3238
B 0 3367