将值附加到所有列

将值附加到所有列

我有一个“简单”的问题,但我还没有找到答案,也没有让我的代码正常工作。我有很多列,我想将最后一列的平均值附加到所有列。例如,假设我有:

2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
1 1 1 1 1

第 5 列的平均值为 2.5。我可以计算平均值,但我想要的是:

2 2 2 2 2 2.5
3 3 3 3 3 2.5
4 4 4 4 4 2.5
1 1 1 1 1 2.5

如有帮助,将不胜感激。

答案1

awk

$ awk '$(NF+1) = 2.5' file

如果您想awk为您完成所有工作:

$ awk '
  FNR == NR { s += $5; i++; next }
  { $(NF+1) = s/i; print }
' file file
2 2 2 2 2 2.5
3 3 3 3 3 2.5
4 4 4 4 4 2.5
1 1 1 1 1 2.5

相关内容