Linux shell脚本中的等级计算
我得到一个文件名Linux shell脚本中的等级计算,linux,shell,Linux,Shell,我得到一个文件名txtGrade.txt包含以下内容: Name Score Nicki Minaj 60 我想通过shell脚本读取并计算文件中的每个人,并回答如下等级: Name Score Grade Nicki Minaj 60 C 条件是A>=80,79>=B>=70,69>=C>=60,59>=D>=50,49>=F 谢谢你帮助我 谢谢 您需要的命
txtGrade.txt
包含以下内容:
Name Score
Nicki Minaj 60
我想通过shell脚本读取并计算文件中的每个人,并回答如下等级:
Name Score Grade
Nicki Minaj 60 C
条件是A>=80,79>=B>=70,69>=C>=60,59>=D>=50,49>=F
谢谢你帮助我
谢谢 您需要的命令:
打印文件的第二行tail-n+2
- A或检查分数对应的等级
- 用于读取包含名称和分数的行的循环:
while read -r first_name last_name score do [here $first_name etc. can be used] done
- A检查分数对应的等级
打印“some text”,后跟空格,然后是printf'%s%s\n''一些文本'$some\u变量'
$some\u变量的值,然后是换行符
您还需要了解。您可以使用Sed命令修改文件。 下面是用分数修改文件的代码,我假设每个列由两个选项卡分隔
sed -i -e "1d" txtGrade.txt
file="ba.txt"
while IFS= read -r line
do
a=$(echo $line | awk '{print $2}')
if [ $a -ge "80" ]
then
sed -i -e "s/${line}/${line}\\t\\tA/g" txtGrade.txt
elif [ $a -ge "70" ] && [ $a -le "79" ]
then
sed -i -e "s/${line}/${line}\\t\\tB/g" txtGrade.txt
elif [ $a -ge "60" ] && [ $a -le "69" ]
then
sed -i -e "s/${line}/${line}\\t\\tC/g" txtGrade.txt
elif [ $a -ge "50" ] && [ $a -le "59" ]
then
sed -i -e "s/${line}/${line}\\t\\tD/g" txtGrade.txt
elif [ $a -ge "49" ]
then
sed -i -e "s/${line}/${line}\\t\\tF/g" txtGrade.txt
else
echo "Results are not correct"
exit 1
fi
done <"$file"
sed -i "1 i\Name\t\tScore\t\tGrade" txtGrade.txt
sed-i-e“1d”txtGrade.txt
file=“ba.txt”
而IFS=读取-r行
做
a=$(echo$行| awk'{print$2}')
如果[$a-ge“80”]
然后
sed-i-e“s/${line}/${line}\\t\\tA/g”txtGrade.txt
elif[$a-ge“70”]&&[$a-le“79”]
然后
sed-i-e“s/${line}/${line}\\t\\tB/g”txtGrade.txt
elif[$a-ge“60”]&&[$a-le“69”]
然后
sed-i-e“s/${line}/${line}\\t\\tC/g”txtGrade.txt
elif[$a-ge“50”]&&[$a-le“59”]
然后
sed-i-e“s/${line}/${line}\\t\\tD/g”txtGrade.txt
elif[$a-ge“49”]
然后
sed-i-e“s/${line}/${line}\\t\\tF/g”txtGrade.txt
其他的
echo“结果不正确”
出口1
fi
这个作业做完了吗?有点像这样,请帮我。用什么命令来使用txtGrade.txt计算。谢谢你,我不明白这个问题。我不知道如何使用这个文本文件。太棒了,谢谢你了,但是“ba.txt”是怎么来的。ba.txt是我用来运行脚本的文件,我忘了用txtGrade.txt替换这个名称。它会工作的,如果你喜欢答案,请投票。