假设我的文本文件中有这一行,格式如下。
"Title:Author:Price:QtyAvailable:QtySold"
我的文本文件的内容如下所示
Hello World:Andreas:10.50:10:5
Lord Of The Rings:Duke:50.15:50:20
(some other records...)
1)用户输入作者和标题。
2)如果程序找到author+title,它会要求用户更新任何可用的字段(对于本案例,包括title、author、price等)。
3)例如,我想更新hello world book的价格。
4)我该怎么做才能告诉程序提取hello world行的内容,并进入10.50以替换书的价格?(假设书的新价格将由用户的输入决定)
希望得到我的答案。
提前感谢那些帮忙的人!
最佳答案
以下是让您开始的内容:
示例脚本:
[jaypal:~/Temp] cat s.sh
#!/bin/bash
echo "Author?"
read author
echo "Title?"
read title
grep -c "$title:$author" file > /dev/null # Look for a line with matching values
if [ $? == 0 ]; then # If found then offer to change price
echo "I found the book, Do you want to update price to what?"
read newprice
sed -i "s/\($book:$author\):[^:]*:/\1:$newprice:/" file
fi
输入数据:
[jaypal:~/Temp] cat file
Hello World:Andreas:10.50:10:5
Lord Of The Rings:Duke:50.15:50:20
执行:
[jaypal:~/Temp] ./s.sh
Author?
Andreas
Title?
Hello World
I found the book, Do you want to update price to what?
40
[jaypal:~/Temp] cat file
Hello World:Andreas:40:10:5
Lord Of The Rings:Duke:50.15:50:20
关于linux - 从文本文件进入一行并对其进行编辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9022278/