按阶段统计数量

source data:

A 235
B 698
C 1425
A 980
C 800
B 120
A 1000
C 1578
B 1899
C 2000

 

要求:

统计每500为一个阶段,第二列的数量,大于1500的算一起:
name  0-499  500-999  1000-1499  >=1500
  A     1       1         1         0
  B     1       1         0         1
  C     0       1         1         2

 

script:

awk 'BEGIN{printf("name 0-499 500-999 1000-1499 >=1500\n")}{a[$1];i=int($2/500);if(i<3) b[$1,i]++;else b[$1,3]++}END{for(j in a){printf j"\t"; for(k=0;k<=3;k++) printf b[j,k]+0"\t";print ""}}'  source_data

 

posted @ 2020-05-22 11:30  bigtree2pingping  阅读(216)  评论(0编辑  收藏  举报