请编写awk脚本a01-grade.awk进行统计: (1)每位同学的平均分及等级(A,B,C,D,F)
时间: 2024-10-15 22:17:45 浏览: 29
GBT27930.2 (2015+) 充电报文解析脚本
当然可以。在AWK脚本中,你可以使用它强大的文本处理能力来计算每位同学的平均分数并分配等级。假设你的数据存储在一个名为`scores.txt`的文件里,每行包含学生姓名和各科成绩,格式如下:
```
张三 95 88 92
李四 80 76 84
王五 98 93 96
...
```
你可以创建一个简单的`a01-grade.awk`脚本来完成这个任务。这里是一个基本的脚本示例:
```awk
#!/usr/bin/awk -f
# 定义变量
BEGIN { FS = " " } # 分割符设置为空格
NR > 1 { # 跳过表头
total += $2 + $3 + $4 # 总分累加
count++ # 学生数计数
}
END {
avg = total / count # 平均分计算
if (avg >= 90) grade = "A"
else if (avg >= 80 && avg < 90) grade = "B"
else if (avg >= 70 && avg < 80) grade = "C"
else if (avg >= 60 && avg < 70) grade = "D"
else grade = "F" # F等级范围
print "学生姓名:", $1 ", 平均分:", avg ", 等级:", grade
}
# 根据学生的总分判断等级并打印结果
{
printf "%s %d %d %d | 平均分:%d 等级:%s\n", $0, $2, $3, $4, avg, grade
}
```
运行此脚本:
```bash
awk -f a01-grade.awk scores.txt
```
这将输出每个学生的平均分和对应的字母等级。
阅读全文