编写脚本select_grade.sh 查询出english成绩大于85并且math成绩大于90的人的名字,性别,chinese,english,math的成绩

有一个成绩文件grade.txt,里面记录了很多同学的成绩,具体如下:

id name sex chinese english math

1   cali      m      80        70       60

2   rose     f       90        98        97

3   tom      f       50        70        60

4   jack     m      99        99        68

 你可以使用下面的select_grade.sh脚本来实现这个需求。这个脚本读取grade.txt文件,然后筛选出满足条件(english成绩大于85并且math成绩大于90)的学生的相关信息。

#!/bin/bash  
  
# 定义文件名  
filename='grade.txt'  
  
# 检查文件是否存在  
if [ ! -f "$filename" ]; then  
    echo "文件'$filename'不存在!"  
    exit 1  
fi  
  
# 输出表头  
echo "name sex chinese english math"  
  
# 读取文件并筛选出满足条件的学生  
awk 'NR>1 {if ($4 > 85 && $5 > 90) print $2, $3, $4, $5, $6}' $filename
  1. 首先,我们定义了一个变量filename来存储成绩文件的名称。
  2. 使用if语句检查文件是否存在,如果不存在,则输出错误信息并退出脚本。
  3. 使用echo输出表头,这样输出的结果会更清晰。
  4. 使用awk命令读取文件并筛选出满足条件的学生。NR>1用于跳过表头,$4 > 85 && $5 > 90用于判断english和math成绩是否满足条件,如果满足,则使用print输出学生的名字、性别、chinese、english和math成绩。

将上面的脚本保存到select_grade.sh文件中,并赋予执行权限,然后运行它:

chmod +x select_grade.sh  
./select_grade.sh

你将得到满足条件的学生的相关信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值