我有一个文本文件。
文本文件中的信息是
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!"
数量无法更新,因为我丢失了价格信息。如果我立即在存储价格的程序中添加了一本新书,我能够编辑数量,但对于其他书籍,则无法编辑可用的数量。
有人可以帮忙吗?我想知道我是否可以提取/存储该书价格的价值。
答案 0 :(得分: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!"