最新消息:我不是很想,只是偶尔想想

awk 分组求和

linux 冯某某 1915浏览 0评论
分组求和
 awk '{s[$1] += $2}END{ for(i in s){  print i, s[i] } }' filename
以第一列 为变量名  第一列为变量,将相同第一列的第二列数据进行累加   打印出和
awk '{s[$1" "$2] += $3}END{ for(i in s){  print i, s[i] } }'  filename
以第一列和第二列为变量名, 将相同第一列、第二列的第三列数据进行累加   打印出和
awk '{s[$1] += $2; a[$1] += $3 }END{ for(i in s){  print i,s[i],a[i] } }'  file
如果第一列相同,则根据第一列来分组,分别打印第二列和第三列的和
扩展使用,按小时统计当前目录下文件大小。
ls -l --time-style '+%Y/%m/%d-%H' |awk '{s[$6] += $5}END{ for(i in s){ print i,s[i]/1024/1024" MB"} }' |sort -n

转载请注明:冯某某 » awk 分组求和

发表我的评论
取消评论
表情