bash shell加减法

bash shell加减法,bash,shell,Bash,Shell,我有一个文本文件 文本文件中的信息是 Book1:Author1:10.50:50:5 Book2:Author2:4.50:30:10 第一个是书名,第二个是作者姓名,第三个是价格,第四个是数量,第五个是销售量 我正在尝试更新nocpysaled。因此,当我这样做时,可用数量(第4列)将下降,销售数量(第5列)将上升 read -p $'No of copies sold: ' noCpySold sed -re "s/${Title}:${Author}:([^:]+):([^:]+)(

我有一个文本文件

文本文件中的信息是

Book1:Author1:10.50:50:5
Book2:Author2:4.50:30:10
第一个是书名,第二个是作者姓名,第三个是价格,第四个是数量,第五个是销售量

我正在尝试更新nocpysaled。因此,当我这样做时,可用数量(第4列)将下降,销售数量(第5列)将上升

read -p $'No of copies sold: ' noCpySold

sed -re "s/${Title}:${Author}:([^:]+):([^:]+)([^:]+)/${Title}:${Author}:\1:\1-${noCpySold}:\1+$noCpySold/g" BookDB.txt > tempBook.txt
mv -f tempBook.txt BookDB.txt
我测试了这段代码,但是减法和加法没有更新。。有人能帮忙吗

awk -F: 'BEGIN {OFS=":"} { $4--; $5++; print $0}' filename >newfile
 mv newfile filename
这是一个awk示例。 编辑:


这是否意味着我可以做$4-$nocpysaled$5美元以上的nocpysaled?不是那样的——请参见上面答案的编辑。注-v还应注意-=和+-运算符。
 num_sold=13
    awk -F: -v sold=$num_sold 'BEGIN {OFS=":"} { $4-=sold; $5+=sold; print $0}' filename >newfile
     mv newfile filename