uniq -u具有特定列

时间:2013-09-04 20:43:31

标签: shell unix uniq

我想根据特定列中仅出现一次的值打印行。在下面的示例中,val2和val3只出现一次。

输入

val1,1
val2,2
val1,3
val3,4

输出

val2,2
val3,4

uniq -u似乎没有指定列的选项。我也试过了sort -t, -k1,1 -u,但每次打印一次。

2 个答案:

答案 0 :(得分:2)

awk -F, '{c[$1]++; t[$1]=$0} END {for(k in c) {if (c[k]==1) print t[k]}}'

答案 1 :(得分:1)

听起来像awk的问题,假设产生

的命令
val1,1
val2,2
val1,3
val3,2

调用foo,然后将其管道输入awk:

foo | awk -F, '$2 == 2 {print}'