awk计算平均值或零

719*_*016 8 bash awk

我正在计算一堆文本文件中的一堆数字的平均值,如下所示:

grep '^num' file.$i | awk '{ sum += $2 } END { print sum / NR }'
Run Code Online (Sandbox Code Playgroud)

但有时文件不包含模式,其中cas我希望脚本返回零.这个略有修改的单线的任何想法?

JRF*_*son 15

你通过产生一个额外的过程来增加你的负载(平均值)来完成第一个可以做的事情.一起使用'grep'和'awk'是一个红旗.你最好写:

awk '/^num/ {n++;sum+=$2} END {print n?sum/n:0}' file
Run Code Online (Sandbox Code Playgroud)


mou*_*iel 5

试试这个:

... END { print NR ? sum/NR : 0 }
Run Code Online (Sandbox Code Playgroud)