2

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

输入

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

输出

val2,2
val3,4

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

4

2 回答 2

2
awk -F, '{c[$1]++; t[$1]=$0} END {for(k in c) {if (c[k]==1) print t[k]}}'
于 2013-09-04T21:07:01.093 回答
1

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

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

被调用foo,然后像这样将其通过管道传输到 awk 中:

foo | awk -F, '$2 == 2 {print}'
于 2013-09-04T20:52:00.060 回答