我正在编写 shell 脚本,我有一个学生文件及其信息(inputFile.txt):
Bonerake:Nicole:1011:410-111-0500:CS:09-12-1985
Fugett:Brandon:8188:410-111-0020:Biology:06-29-1982
Bozick:Julia:0333:410-111-0900:English:01-18-1984
Freeman:Andrew:7747:410-111-0060:Business:03-14-1988
Carroll:Sandra:4044:410-111-0000:History:12-19-1987
Everett:Terry:8666:410-111-0100:CS:01-24-1986
Boyer:Dennie:2212:410-111-0080:Math:08-02-1983
我应该根据用户输入的信息的哪一部分(即名字、姓氏等)进行排序。我可以对姓氏执行此操作,因为它是每行中的第一个。但是,我似乎无法了解任何其他信息。这是我尝试按名字排序的方法,但没有任何反应:
sortStudents(){
echo -e "Which information would you like to sort students by?"
echo -e "\t1) Last Name"
echo -e "\t2) First Name"
echo -e "\t3) Student ID"
echo -e "\t4) Phone Number"
echo -e "\t5) Major"
echo -e "\t6) Birthday"
echo -e "\t*** Input choice: \c"
read choice
case "$choice" in
1) sort inputFile.txt -o inputFile.txt ;;
2) cut -d: -f2 inputFile.txt | sort inputFile.txt -o inputFile.txt ;;
esac
return $TRUE
}
我使用-f2
是因为我认为这意味着转到由分隔符分隔的第二个字段。我找了又找;尝试了多个不同的cut
and sed
andgrep
命令,但我似乎找不到具有我需要的正确选项的命令。任何帮助将不胜感激。谢谢你。