编写awk程序,实现成绩统计报表
时间: 2024-01-18 15:52:10 浏览: 15
好的,我可以为你编写一个简单的 awk 程序来实现成绩统计报表。假设你有一个名为 `scores.txt` 的文件,其中包含每个学生的姓名和成绩,格式如下:
```
Amy 89
Bob 78
Charlie 92
David 65
Ellen 77
Frank 83
```
你可以使用以下 awk 程序来计算每个学生的平均分、最高分和最低分:
```awk
awk '{
sum += $2
if (NR == 1) {
min = $2
max = $2
} else {
if ($2 < min) {
min = $2
}
if ($2 > max) {
max = $2
}
}
} END {
avg = sum / NR
printf("平均分:%d\n最高分:%d\n最低分:%d\n", avg, max, min)
}' scores.txt
```
在上面的程序中,`sum` 变量用于计算所有学生成绩的总和,`min` 和 `max` 变量用于记录最低分和最高分。在处理每一行时,程序将当前行的成绩加到 `sum` 变量中,并且检查当前行的成绩是否比 `min` 和 `max` 更低或更高。在处理完所有行之后,程序计算出平均分,并使用 `printf` 函数打印出结果。
你可以将上面的 awk 程序保存到一个文件中,例如 `score_report.awk`,然后在命令行中运行:
```
awk -f score_report.awk scores.txt
```
这将会输出每个学生的平均分、最高分和最低分。