【发布时间】:2015-10-10 23:26:57
【问题描述】:
jon,doe 5 5
sam,smith 10 5
我需要计算行和列的平均值。所以基本上输入文件包含名称 score1 和 score2 ,我需要从文件中读取内容,然后计算平均行和列。我得到了想要的结果,但是由于空白,我得到了一个额外的'0',如果有人可以提供帮助,我将不胜感激。
awk 'BEGIN {print "name\tScore1\tScore2\tAverage"} {s+=$2} {k+=$3} {print $1,"\t",$2,"\t",$3,"\t",($2+$3)/2} END {print "Average", s/2,k/2}' input.txt
这是我得到的输出-
name Score1 Score2 Average
jon,doe 5 5 5
sam,smith 10 5 7.5
0
Average 7.5 5
【问题讨论】:
-
有没有人能解释一下为什么要这样写
{s+=$2} {k+=$3}? -
@HuStmpHrrr 这是一项任务。我们将 $2 和 $3 中的任何内容分别存储在 s 和 k 中
-
我想知道为什么不
{s+=$2; k+=$3}?如果没有额外的优点,它看起来很奇怪 -
@HuStmpHrrr 你也可以这样做。我正在学习,我想我会努力学习。