gpt4 book ai didi

linux - 使用 awk 计算并打印每行的平均分数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:27 27 4
gpt4 key购买 nike

使用 awk 命令

  1. 使用 grades.txt 文件打印出每个学生的姓名和姓氏计算/打印他们当前的百分比分数(假设相等每个作业的权重)。

成绩.txt文件

FN LN Lab HW1 HW2 HW3 HW4
Ryan Slaven 1 1 0 1 1
Jephthah Eustathios 0 1 0 1 0
Andreas Saša 1 0 1 0 1
Godofredo Gerard 1 1 1 1 1
Edwin Babur 1 0 1 1 1
Ahmad Marin 0 0 0 0 0
Jett Marko 1 1 0 1 1

我的答案是:

awk '{sum=0;for(i=3;i<=NF;i++) sum+=$i; print $1, $2, (NF>2?sum/(NF-2):0)*100}' grades.txt

但是,对于 FN 和 LN 旁边的输出,它显示 0。我如何删除 0,或使其显示为“平均”?或者,我该如何删除该行?

另外,请问有没有更好的解题方法?

最佳答案

$ awk '{print $1, $2, (NR>1 ? 100*gsub(1,1)/(NF-2) : "Average")}' file
FN LN Average
Ryan Slaven 80
Jephthah Eustathios 40
Andreas Saša 60
Godofredo Gerard 100
Edwin Babur 80
Ahmad Marin 0
Jett Marko 80

关于linux - 使用 awk 计算并打印每行的平均分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39340333/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com