私はシェル スクリプトを書いており、生徒とその情報のファイル (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
デリミネータで区切られた2番目のフィールドに移動することを意味すると思うので、使用しました。私は検索して検索しました。cut
複数の異なるコマンドとコマンドsed
を試しgrep
ましたが、必要な正しいオプションを備えたコマンドが見つからないようです。どんな助けでも大歓迎です。ありがとうございました。