您的位置:首页 > 运维架构 > Linux

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

2017-09-18 00:10 405 查看
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}'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  awk linux