0

我有一个文本文件。

文本文件中的信息是

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

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

4

1 回答 1

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

这是一个 awk 示例。编辑:

 num_sold=13
    awk -F: -v sold=$num_sold 'BEGIN {OFS=":"} { $4-=sold; $5+=sold; print $0}' filename >newfile
     mv newfile filename
于 2013-01-26T13:03:15.663 回答