我有一个名为“marks”的文件,其中每一行都涉及一个学生的名字、姓氏以及他这个学期参加的4门课程的成绩:
John McJohn 56 68 31 99
Ronald McDonald 89 89 60 75
Boaty McBoatface 50 50 50 50
我尝试创建一个awk脚本,该脚本会打印每行的平均分数(即每个学生的平均分数)和他所在的行数。
例如:
Student 1, John McJohn, 63,5
Student 2, Ronald McDonald, 78.25
等等,等等。
我想到的是以下内容:
{
for(i=0; i<FNR; i++)
{
avg=($3+$4+$5+$6)/4;
printf("Student %d, %s %s, %.2f\n", i, $1, $2, avg);
}
}
但是这样的输出结果很混乱,看起来像笛卡尔积: 我怀疑
i<FNR
表达式存在问题,导致每个循环的行为异常。应该如何修改?
%.2f
,而不是带有美元符号的。 - user2314737awk '{print "学生" NR "," $1 $2 "," , ($3+$4+$5+$6)/4}' 你的文件名
。 - Lars Fischer