【发布时间】:2023-03-14 05:20:01
【问题描述】:
我有以下数据,这些数据是从 CSV 逗号分隔文件中读取的,它包含 8 列: ID、姓名、主题、Grade1、Grade2、Grade3、Grade4、Grade5、Final
以下是数据示例:
1,Allan Wilkinson,Calculo I,3.4,2.5,5,5,3.2
1,Allan Wilkinson,Calculo II,1,4.1,3.5,3.7,2.7
1,Allan Wilkinson,Fisica I,3,3.2,3.7,4.2,5
2,Rexanne Dickinson,Fisica II,4.3,3.4,2.5,5,3.5
2,Rexanne Dickinson,Estadistica,2.3,1,4.1,3.5,5
2,Rexanne Dickinson,Calculo I,3.4,2.5,5,3.7,3.5
3,Meaghan Neely,Calculo II,1,4.1,3.5,2.5,5
3,Meaghan Neely,Fisica I,3,3.2,3.7,4.1,3.5
3,Meaghan Neely,Fisica II,4.3,2.1,2.5,4.5,3.2
4,Ariana Donkin,Estadistica,1,4.1,4.3,2.1,2.5
4,Ariana Donkin,Calculo I,3,3.2,1,4.1,4.1
4,Ariana Donkin,Calculo II,3.4,3.2,1,4.1,3.2
5,Camron Jenner,Fisica I,2.1,2.5,5,2.5,2.5
5,Camron Jenner,Fisica II,4.1,4.1,3.5,4.1,4.3
我正在尝试编写一个 Bash 程序,用户可以在其中输入新行或更新当前行,并将数据保存到 CSV 文件中。
我目前拥有的代码读取并匹配请求的数据,并且还请求新数据。我尝试实现 awk,但我不确定该怎么做,或者它是否真的可以完成这项工作。
代码如下:
echo "Enter the student ID";
read student;
while IFS=, read -r ID name subject grade1 grade2 grade3 grade4 grade5 finalg
do
if [[ $ID == $student ]]; then
echo "$subject $grade1 $grade2 $grade3 $grade4 $grade5 $finalg";
fi
done < grades.csv
echo "Enter Subject to Modify or Enter a New one to Add";
read modSubject;
echo "Enter Grade1";
read grade1new;
echo "Enter Grade2";
read grade2new;
echo "Enter Grade3";
read grade3new;
echo "Enter Grade4";
read grade4new;
echo "Enter Grade5";
read grade5new;
total=$(echo "$grade1new + $grade2new + $grade3new + $grade4new + $grade5new" | bc);
final=$(echo "scale=2; $total/5" | bc);
谁能指出我正确的方向。谢谢
【问题讨论】: