2

我有一个文本文件。

文本文件中的信息是

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

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

我试图更新价格,它适用于:

read -p $'New Price: ' newPrice
sed "s/${Title}:${Author}:[^:]\+/${Title}:${Author}:${newPrice}/g" BookDB.txt > tempBook.txt
mv -f tempBook.txt BookDB.txt
echo "Book price updated!"

当我退出程序并添加代码以更新数量时,使用:

read -p $'New Quantity: ' newQty
sed "s/${Title}:${Author}:${Price}:[^:]\+/${Title}:${Author}:${Price}:${newQty}/g" BookDB.txt > tempBook.txt
mv -f tempBook.txt BookDB.txt
echo "Book quantity updated!"

数量无法更新,因为我有点丢失了价格信息。如果我立即将一本新书添加到存储价格的程序中,我可以编辑数量,但对于其他书籍,无法编辑可用数量。

有人可以帮忙吗?我想知道我是否可以提取/存储这本书的价格价值。

4

1 回答 1

1

对于更新数量,您可以使用:

read -p $'New Quantity: ' newQty
sed -re "s/${Title}:${Author}:([^:]+):[^:]+/${Title}:${Author}:\1:${newQty}/g" BookDB.txt > tempBook.txt
mv -f tempBook.txt BookDB.txt
echo "Book quantity updated!"
于 2013-01-20T10:14:25.210 回答