Shell 脚本:轻松计算 score.txt 中各班级学生人数与平均分
以下是一个简单的Shell脚本,用于计算每个班级的学生人数和平均分。假设`score.txt`文件的格式如下: ``` 班级1 学生1 85 班级1 学生2 90 班级2 学生3 78 班级2 学生4 88 班级3 学生5 92 班级3 学生6 85 ``` 脚本内容如下: ```bash #!/bin/bash # 初始化一个关联数组来存储每个班级的总分和学生人数 declare -A class_total declare -A class_count # 读取score.txt文件 while read -r class student score; do # 累加每个班级的总分 class_total[$class]=$((class_total[$class] + score)) # 累加每个班级的学生人数 class_count[$class]=$((class_count[$class] + 1)) done < score.txt # 输出每个班级的学生人数和平均分 for class in "${!class_total[@]}"; do total=${class_total[$class]} count=${class_count[$class]} average=$((total / count)) echo "班级 $class 的学生人数: $count, 平均分: $average" done ``` 代码解释: 1. `declare -A class_total` 和 `declare -A class_count`:声明两个关联数组,用于存储每个班级的总分和学生人数。 2. `while read -r class student score; do`:逐行读取`score.txt`文件,并将每行的班级、学生和成绩分别赋值给变量`class`、`student`和`score`。 3. `class_total[$class]=$((class_total[$class] + score))`:累加每个班级的总分。 4. `class_count[$class]=$((class_count[$class] + 1))`:累加每个班级的学生人数。 5. `for class in "${!class_total[@]}"; do`:遍历所有班级,计算并输出每个班级的学生人数和平均分。 额外需要注意的逻辑点: 1. 确保`score.txt`文件的格式正确,每行包含班级、学生和成绩三个字段。 2. 如果某个班级没有学生,脚本不会输出该班级的信息。 3. 如果成绩不是整数,脚本可能会出错,需要确保成绩是整数。 ######[AI写代码神器 | 493点数解答 | 2025-03-01 18:04:23]
- 测3:以读、二进制方式打开C盘temp文件夹下abc.txt文件的代码选哪个?(GPT | 15点数解答 | 2024-06-06 13:53:37)413
- Linux 知识问答:判断文件 test.txt 是否存在的正确命令揭晓!(字节豆包 | 62点数解答 | 2024-11-22 17:14:08)300
- 优化代码:安全高效解锁设备 Bootloader 与刷入 Recovery 镜像(DeepSeek | 345点数解答 | 2025-02-21 22:47:48)183
- 简易贪吃蛇代码:修复函数闭合问题,附完整代码及开发注意要点(字节豆包 | 1472点数解答 | 2025-08-12 12:58:19)134
- Python实现:依据标准判定中学学生附加科目测试等级并写入文件(讯飞星火 | 573点数解答 | 2024-06-22 23:14:14)348
- 批处理文件:依据参数表.xlsx精准修改文件.txt中p、t、s值(GPT | 811点数解答 | 2024-12-05 12:58:37)410
- 用批处理和Python实现“参数表.xlsx”与“文件.txt”数据匹配及修改(讯飞星火 | 531点数解答 | 2024-12-05 13:20:42)386
- 批处理文件:依据参数表.xlsx精准修改文件.txt特定参数值(阿里通义 | 495点数解答 | 2024-12-05 13:22:26)364
- C语言实现:计算n个元素集合的非空子集划分数量(字节豆包 | 223点数解答 | 2025-04-02 08:32:25)241
- Shell脚本:用户密码验证、目录文件操作全流程实现及注意要点(字节豆包 | 466点数解答 | 2025-06-06 11:02:00)179
- Linux 终端操作全攻略:用户创建、文件处理、权限设置与日志查找(字节豆包 | 592点数解答 | 2025-06-12 21:19:29)189
- C 语言编程:解决编程赛小组淘汰问题及代码优化建议(字节豆包 | 421点数解答 | 2024-12-28 16:57:18)207