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