awk仅在uniq列

时间:2017-07-27 13:48:06

标签: linux bash shell awk

我的数据集如下:

1 A
1 B
1 C
2 A
2 B
2 C
3 B
3 C

我有一个计算我的脚本:

  1. 搜索字符串中的出现次数

  2. 行数

    awk -v search="A" \
       'BEGIN{count=0} $2 == search {count++} END{print count "\n" NR}' input
    
  3. 完美无缺。

    我想在第一列中添加awk一行内容的唯一行。

    因此输出应由 \ n 分隔:

    2
    8
    3
    

    我可以在单独的awk代码中执行此操作,但我无法将其集成到原始的awk代码中。

    awk '{a[$1]++}END{for(i in a){print i}}' input  | wc -l 
    

    知道如何在没有管道的情况下将其集成到一个awk解决方案中吗?

1 个答案:

答案 0 :(得分:4)

看起来你想要这个:

awk -v search="A" '{a[$1]++} 
                   $2 == search {count++}
                   END{OFS="\n";print count+0, NR, length(a)}' file