如何替换 csv 文件中的信息?

how do I replace a information Fromm csv file?

我有以下程序

#!/bin/bash
exec 3< lista.csv
read -u 3 header
declare -i id_nou
echo "ID: "
read id_nou
while IFS=, && read -u 3 -r id nume prenume seria grupa nota
do
if [ "$id_nou" -eq "$id" ]
then
echo "Nota noua: "
read  nota_noua
nota=$nota_noua
print > lista.csv
fi
done

我的 csv 文件看起来像这样:

id,nume,prenume,grupa,seria,nota

1,离子,安德拉达,1003,A,8

2,Simion,Raluca,1005,A,7

3,Gheorghita,Mihail,1009,B,5

4,Mihailescu,Georgina,1002,A,6

我想做的是将通讯员 id 的 nota 值替换为键盘值给定的值,但这似乎不起作用。 错误信息是

第 14 行:打印:未找到命令

有什么建议吗?

这是 awk 中的一个:

awk 'BEGIN {
    FS=OFS=","                            # comma field separators
    printf "id: "                         # ask for id
    if((getline id < "/dev/stdin")<=0)    # store to a variable
        exit 1
    printf "nota: "                       # ...
    if((getline nota < "/dev/stdin")<=0)
        exit 1
}
==id {                                  # if firsst field matches
    $NF=nota                              # replace last field value
}
1' file                                   # output

输出:

id: 1
nota: THIS IS NEW VALUE
id,nume,prenume,grupa,seria,nota
1,Ion,Andrada,1003,A,THIS IS NEW VALUE
2,Simion,Raluca,1005,A,7
3,Gheorghita,Mihail,1009,B,5
4,Mihailescu,Georgina,1002,A,6

Here 是关于保存更改的一些信息。