桶中的awk直方图

时间:2011-08-04 21:13:17

标签: awk grouping

考虑我有一个以下文件..

1 a
1 b
1 a
1 c
1 a
2 a
2 d
2 a
2 d

我想在一个桶中有一个直方图...例如,如果bucket为1,那么输出将是

a 3
b 1
c 1
a 2
d 2

对于第2桶......我们有

a 5
b 1
c 1
d 2

我想用awk做这件事,我真的卡住了...... 这是我的代码:

awk '
    {A[$1]} count [$2]++ 
    {for(i in A) {print i,A[i]}
    }' test

任何帮助?

谢谢,

阿米尔。

1 个答案:

答案 0 :(得分:4)

修改添加size_of_bucket变量。

awk -v "size_of_bucket=2" '
  {
    bucket = int(($1-1)/size_of_bucket);
    A[bucket","$2]++;
  }
  END {
    for (i in A) {
      print i, A[i];
    }
  }
'