【问题标题】:Calculate average of several columns and print the results in new file计算几列的平均值并在新文件中打印结果
【发布时间】:2014-09-07 08:48:22
【问题描述】:

我是一个 awk 初学者,遇到以下问题。我有一个包含几列的文件,其中包含如下数据:

1 2 3 6

2 3 4 7

4 5 6 8

现在我想计算每一列的平均值并将结果写入一个新文件,例如列出平均值的newfile.txt(不管是行还是列):

2
3
5
7

非常感谢!

斯蒂芬

【问题讨论】:

  • 它如何为第三列生成 5?
  • 您是有意使用整数除法来确定均值,还是要浮点输出?
  • 你的输入文件中每个数据行之间真的有空行吗?
  • @Avinash Raj:正如我提到的打击,不幸的是我算错了!我很抱歉。它需要一台计算机来进行正确的计算;-) @Tom Fenech:格式无关紧要,(错误的)数字是随机选择的 @Ed Morton:不,数据行之间没有空行。我在格式化文本时遇到了一些问题(这是我在 stackoverflow 上的第一篇文章)
  • @StephanK 如果它可以帮助您解决问题,请考虑通过单击旁边的复选标记来接受答案

标签: awk


【解决方案1】:

平均而言,我得到这个:

awk '{for (i=1;i<=NF;i++) a[i]+=$i} NF{c++} END {for (j=1;j<i;j++) print a[j]/c}' file
2.33333
3.33333
4.33333
7

【讨论】:

  • 对不起——我算错了!感谢您的帮助,awk 线路效果很好!
猜你喜欢
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多