gpt4 book ai didi

linux - 用于从 txt 文件中删除一行文本的 bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:43 25 4
gpt4 key购买 nike

尝试在满足特定条件后执行删除脚本。尝试使用 sed 命令并将其输入到 if else 中以与字符串(用户使用 read 命令输入)进行比较以比较它们是否在 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

最佳答案

这里有概念问题和语法问题。

从您的 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”作为书,输入“Nabokov”作为作者,两个 grep 都会成功,并且您将尝试删除一本不存在的书。

关于linux - 用于从 txt 文件中删除一行文本的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48358385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com