我想计算文件M列的最后N行的平均值。我发现最好的解决方案是使用tail
获取最后N行并将其传递给awk
。就我而言,N=200
和M=2
。结果命令为:
tail -n 200 -f filename.asc | awk '{ total += $2 } END { print total/NR }'
但是,我没有得到任何结果。实际上,终端不会返回。我分别尝试了tail
,它输出的最后200行很好,但与awk
结合使用不起作用。
我还尝试使用unbuffer
(在tail
之前)作为建议的this解决方案之一,但仍未解决。请提出解决方案。
答案 0 :(得分:2)
使用tail
(跟随模式)运行-f
时,它永远不会终止;并且awk
在输入结束时运行END
块,因此它永远不会终止。删除-f
,它应该可以。