2
我有一个文件名为“标记”用指的是学生的名字,姓氏和类4标记线的平均他把这个学期的每一行是这样的:awk中:打印每一行
John McJohn 56 68 31 99
Ronald McDonald 89 89 60 75
Boaty McBoatface 50 50 50 50
我尝试创建一个awk脚本,每行打印每行(每个学生)的平均分数和他所在的行数。
f.e.
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',而不是$符号 – user2314737
你不必循环。 awk会为你循环遍历每一行。这样的东西就足够了:'awk'{print'Student'NR',',$ 1 $ 2“,”,($ 3 + $ 4 + $ 5 + $ 6)/ 4}'yourfile'。 –
@ user2314737这是一个错字,我现在正在编辑它。 – Coursal