AWK将列的总和除以文件中的行数

时间:2012-04-16 19:13:16

标签: linux bash unix awk

我有一个文件,其中包含如下所示的数据行

300,,,292,15.4,0,04/16/12 20:10:39
200,,,292,15.4,0,04/16/12 20:10:39
100,,,292,15.4,0,04/16/12 20:10:39

使用awk我正在总结像这样的第一列

awk -F ',' '{ x = x + $1 } END { print x }' MyFile

哪个重新调整600没问题。

我想修改此命令以计算文件中的行数,然后代替{ print x }我想要{ print x / y },其中y是文件中的行数。

所以它会返回600/3 = 200。

2 个答案:

答案 0 :(得分:4)

到目前为止处理的记录数目是NR:

awk -F, '{ x += $1 } END { print x " " x/NR }' MyFile

NR计算所有已处理的文件;在这里,这是一个单独的文件。至少在awk的某些版本中还有FNR;它计算当前文件中处理的记录数。在这个例子中,NR == FNR,因为只有一个文件。

答案 1 :(得分:0)

你为number of records尝试了NR吗?

awk -F ',' '{ x = x + $1 } END { print x/NR }' MyFile