登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SeaRiver Blog

实力才是你一生最好的依靠!

 
 
 

日志

 
 

awk命令计算文件中某一列的总和  

2008-01-12 08:50:49|  分类: shell |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

用awk命令计算文件中某一列的总和:
awk 'BEGIN{sum=0}{sum+=$1}END{print sum}' data.txt

比较完整的一个例子:
awk -F ',' 'BEGIN{sum=0 ;count=0}{if ($(NF-11) == 2 && $NF == 0 && $3 == "1.6.1_1_1") {sum +=$5; count++;} } END {print "sum="sum" count="count " avg="sum/count}'

说明:
BEGIN{sum=0 ;count=0} 初始化计数器;
END {print "sum="sum" count="count " avg="sum/count} 打印汇总,计数器 和均值;
if ($(NF-11) == 2 && $NF == 0 && $3 == "1.6.1_1_1") {sum +=$5; count++;} 判断倒数第11个字段,判断倒数第一个字段,判断第三个字段(字符串) 第五个字段汇总累加,计数器累加

 

例:
[root@jp-test-apache var]# du -s /var/lib/*
28860   /var/lib/Pegasus
56      /var/lib/alternatives
15064   /var/lib/canna
8       /var/lib/cs
8       /var/lib/dav
8       /var/lib/dhcp
8       /var/lib/dhcpv6
8       /var/lib/games
8       /var/lib/ibmasm
8       /var/lib/logrotate.status
24      /var/lib/misc
52      /var/lib/news
56      /var/lib/nfs
16      /var/lib/ntp
8       /var/lib/pcmcia
16      /var/lib/php
8       /var/lib/random-seed
35500   /var/lib/rpm
1888    /var/lib/slocate
8       /var/lib/supportinfo
8       /var/lib/up2date
8       /var/lib/webalizer
3884    /var/lib/wnn

计算第一列之和:
[root@jp-test-apache var]# du -s /var/lib/*|awk -F '.' 'BEGIN{sum=0 ;count=0}{sum +=$1; count++;} END {print "sum="sum" count="count " avg="sum/count}'
sum=85512 count=23 avg=3717.91

显示执行过程:
[root@jp-test-apache var]# du -s /var/lib/*|awk -F '.' '{sum +=$1; count++;} {print "sum="sum" count="count " avg="sum/count}'
sum=28860 count=1 avg=28860
sum=28916 count=2 avg=14458
sum=43980 count=3 avg=14660
sum=43988 count=4 avg=10997
sum=43996 count=5 avg=8799.2
sum=44004 count=6 avg=7334
sum=44012 count=7 avg=6287.43
sum=44020 count=8 avg=5502.5
sum=44028 count=9 avg=4892
sum=44036 count=10 avg=4403.6
sum=44060 count=11 avg=4005.45
sum=44112 count=12 avg=3676
sum=44168 count=13 avg=3397.54
sum=44184 count=14 avg=3156
sum=44192 count=15 avg=2946.13
sum=44208 count=16 avg=2763
sum=44216 count=17 avg=2600.94
sum=79716 count=18 avg=4428.67
sum=81604 count=19 avg=4294.95
sum=81612 count=20 avg=4080.6
sum=81620 count=21 avg=3886.67
sum=81628 count=22 avg=3710.36
sum=85512 count=23 avg=3717.91

  评论这张
 
阅读(2407)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018