如果第2列和第3列匹配使用awk,如何删除重复的行?

时间:2016-04-14 08:51:46

标签: awk

我有一个包含4列的文件:

ifile.txt
3  5  2  2
1  4  2  1
4  5  7  2 
5  5  7  1 
0  0  1  1

我想删除第2列和第2列的重复行。 3是相同的。例如,第3行和第3行在图2中,第4列具有相同的值。所以我想保留第3行并删除第4行。我的输出是:

ofile.txt
3  5  2  2
1  4  2  1
4  5  7  2
0  0  1  1

2 个答案:

答案 0 :(得分:2)

awk 'NR==FNR{a[$2,$3]++;next}a[$2,$3]==1' file file
3  5  2  2
1  4  2  1
0  0  1  1

GNU awk

答案 1 :(得分:1)

awk '{a[NR]=$2""$3} a[NR]!=a[NR-1]{print}' file

$2$3值保存到索引为a的数组NR。然后,如果当前行和上一行中a的值与打印行不匹配,则忽略。