我要做一个bash程序,它会读取一个名字,存储它,然后读取分数以查找平均值是否高于60.如果是,请打印出他们的名字。所以文件看起来像这样
tim 50 60 70
roy 90 80 90
该程序应该只打印出#ro;"因为他是唯一一个成绩合格的人。这就是我得到的。我只是不确定在哪里放置像;,{}和(),所以我确定我的代码是可怕的:
#!/bin/bash
awk '{name=$i}
{avg=0}
{
count=0;
for(i=2;i<=NF;i++)
avg+=$i
count++;
}
avg=avg/count {
if(avg >= 60)
printf("%s ", name)
}'
令人惊讶的是,它编译时没有任何错误,但没有任何打印。
答案 0 :(得分:3)
你快到了那里:
awk '{
name=$1
tot=0
for(i=2;i<=NF;i++)
tot+=$i
if(tot/(NF-1)>60)
print name
}' yourfile