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

来源:互联网 发布:电子相册制作软件推荐 编辑:程序博客网 时间:2024/06/02 02:50
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}'
原创粉丝点击