我有一个包含标题的日志文件和由数字数据组成的相关字符串数
This is the benchmarks ns/day for wsp systems
21.473
21.483
21.425
21.548
21.588
21.587
21.522
21.547
21.549
21.487
在日志中我需要自动添加由AVERAGE =组成的最后一行,并从2-11个字符串的数字计算平均值。将非常感谢优雅的bash脚本,它将打开日志,循环字符串并在其中添加最后一个字符串!
THX!
詹姆斯
答案 0 :(得分:0)
这个awk单行应该适合你:
awk '7;NR>1{t+=$0}END{printf "EVERAGE=%.3f\n",t/(NR-1)}' file
它的作用:
t
printf
功能)如果你在你的示例文件上测试它,它会给出:
kent$ awk '7;NR>1{t+=$0}END{printf "AVERAGE=%.3f\n",t/(NR-1)}' f
this is the benchmarks ns/day for wsp systems
21.473
21.483
21.425
21.548
21.588
21.587
21.522
21.547
21.549
21.487
AVERAGE=21.521
答案 1 :(得分:0)
我会使用awk这个
awk '{sum+=$1; print} END{print "AVERAGE=" sum/(NR-1)}' logfile
sum+=$1
会将每个字符串的第一个元素添加到变量
END
语句将根据行数(或awk词汇表中的'record')NR