linux通过awk命令实现分组统计(计数、求和)实现group by功能

1,508次阅读
没有评论

以下为待分析内容:

北京 | 少年 |23
河北 | 少年 |15
北京 | 青年 |35
上海 | 少年 |6
北京 | 中年 |19
上海 | 青年 |28

三列分别为地区、年龄段、去过城市个数

一、根据某列进行分组计数

根据地区统计人数

cat test.txt|awk -F '|' '{x[$1]++;} END{for(i in x) print(i":"x[i])}'

结果如下:

 上海:2
河北:1
北京:3

二、根据某列对另一列进行分组求和

根据年龄段统计去过城市个数

 cat test.txt|awk -F '|' '{x[$2]+=$3;} END{for(i in x) print(i":"x[i])}'

结果如下:

 青年:63
中年:19
少年:44

三、根据限定条件进行分组计数或求和

统计北京地区的不同年龄段去过的城市个数

cat test.txt|awk -F '|' '{if($1==" 北京 ") {x[$2]+=$3;}} END{for(i in x) print(i":"x[i])}'

结果如下

 青年:35
中年:19
少年:23

 

 

 

 

 

微信扫描下方的二维码阅读本文

正文完
 0
柹子丶
版权声明:本站原创文章,由 柹子丶 于2023-04-25发表,共计421字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码