[笔记] awk命令计算sum, min, max, avg

awk 'BEGIN{max=0;min=9e9}{FS=" "}{x+=$5;if($5>max){max=$5}else if($5<min){min=$5}}END{print x,"\t",max,"\t",min,"\t",x/NR}'

讲解:
1. FS指定间隔符 (每一段用$x引用,编号从1开始)
2. BEGIN和END后面为一次性命令,中间的主体部分对每一行执行
3. 类似c语法,各段使用{}包裹,语句使用;分隔
4. NR为number of records,即行数,NF为number of fields,即当前行被分割了多少段,FNR为file number of records,即当前文件内的行数;$NF表示最后一个field的

上面代码分解为:

awk 'BEGIN{max=0;min=9e9}
{FS=" "}
{
    x+=$5;
    if($5>max){max=$5}
    else if($5<min){min=$5}
}
END{print x,"\t",max,"\t",min,"\t",x/NR}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值