打印具有唯一指定字段的行

打印具有唯一指定字段的行

如何根据具有唯一字段和来打印行234

字段 2 和字段 3 是数字,字段 3 是字母表,文件中总共有 2500 行。

输入:

10,11,12,A,3
10,11,12,A,4
10,11,12,B,3

输出:

10,11,12,B,3

答案1

awk

 awk -F, 'NR==FNR{ dup[$2, $3, $4]++; next } (dup[$2, $3, $4]==1)' infile infile

在这里,我们对输入进行infile两次处理,首先读取文件并根据指定的字段保存每个重复的行$2$3$4保存到名为 的关联数组中dup++每次都会增加这些行的出现次数。

在下一个过程中,检查并打印整行,如果指定的字段只出现一次。

答案2

例如:

egrep '^[^,]*,11,12,B,' input.file

解释:

^从该行的开头

[^,]任何不是“,”的东西

*尽可能多次

,11,12,B,那是你要寻找的

相关内容