bash shell加法和减法

时间:2013-01-26 10:02:09

标签: bash shell

我有一个文本文件。

文本文件中的信息是

Book1:Author1:10.50:50:5
Book2:Author2:4.50:30:10

第一个是书名,第二个是作者姓名,第三个是价格,第四个是数量,第五个是销售数量。

我正在尝试更新noCpySold。因此,当我这样做时,可用数量(第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

我测试了这段代码但是减法和添加没有更新......任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

awk -F: 'BEGIN {OFS=":"} { $4--; $5++; print $0}' filename >newfile
 mv newfile filename

这是一个很好的例子。 编辑:

 num_sold=13
    awk -F: -v sold=$num_sold 'BEGIN {OFS=":"} { $4-=sold; $5+=sold; print $0}' filename >newfile
     mv newfile filename