在满足特定条件后尝试执行删除脚本。尝试使用sed命令并将其输入if if以与字符串(使用读取命令的用户输入)进行比较,以比较它们是否在txt文件中。
我的命令如下:
read -p "Book Title to delete: " bookT
read -p "Book Author to delete: " Author
#grep "$bookT" file.txt >> tempvar1
#grep "$Author" file.txt >> tempvar2
if grep -q "$bookT" file.txt && grep -q "$Author" file.txt
then
sed -i -e "s/$bookT/$author/d" file.txt
echo "Book deleted successfully!"
else
echo "book not deleted!"
fi
答案 0 :(得分:0)
这里存在概念问题和语法问题。
从sed
我希望file.txt
包含以下内容:
Moby Dick/Herman Melville
Lolita/Vladimir Nabokov
The art of computer programming/Donald Knuth
在这种情况下,sed
应为:
sed -i "/$bookT.*$author/d" BookDB.txt
或\/
代替.*
或类似内容。
其他问题之一是file.txt
更改为BookDB.txt
。你应该看一下,因为我觉得这很奇怪。
另一个概念性问题是,如果我进入" Moby Dick"作为书和"纳博科夫"作为作者,两个greps都会成功,您将尝试删除不存在的书。