Shell-shell按列对文本文件进行分类统计

Shell-shell按列对文本文件进行分类统计

晚风撩人 发布于 2017-09-21 字数 422 浏览 1129 回复 2

如下文本文件:

2012-9-2 10:00        291        239
2012-9-2 10:15 163 177
2012-9-2 10:30 240 269
2012-9-2 10:45 234 252
2012-9-3 10:15 159 157
2012-9-3 10:30 203 201
2012-9-3 10:45 329 357
2012-9-3 16:00 296 224
2012-9-3 16:15 229 219

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-10-28 2 楼

用awk实现的,稍微有点复杂:

awk '$1!=p{if(p) print p"t"s3/a[p]"t"s4/a[p]"t"m3"t"m4;s3=0;s4=0;m3=0;m4=0;p=$1}{s3+=$3;s4+=$4;a[p]++;if($3>m3)m3=$3;if($4>m4)m4=$4}END{print p"t"s3/a[p]"t"s4/a[p]"t"m3"t"m4}' order.log

坐等比较简单点的

夜无邪 2017-10-02 1 楼

能满足要求

 awk '{key=$1;split(a[key],tmpArr,",");v1=tmpArr[1]+$3;v2=tmpArr[2]+$4;v3=$3>tmpArr[3]?$3:tmpArr[3];v4=$4>tmpArr[4]?$4:tmpArr[4];v5=tmpArr[5]+1;a[key]=v1","v2","v3","v4","v5;}END{for(i in a) {split(a[i],tmpArr,",");print i,tmpArr[1]/tmpArr[5]" "tmpArr[2]/tmpArr[5]" "tmpArr[3]" "tmpArr[4];}}' 1.txt