Удаление определенной строки в текстовом файле

Я работаю над опцией, которая сможет удалить указанную строку, если пользователь введет точное название и автора.

Однако я не смогу заставить это работать.

Содержание моей функции показано ниже

fnRemoveBook()
{
echo"Title: "
read Title
echo"Author: "
read Author

if grep -Fqe "$Title:$Author" BookDB.txt; then
    sed -i '/"$Title:$Author"/ d' BookDB.txt
    echo "Book removed successfully!"
else
    echo "Error! Book does not exist!"
fi
}

Содержание BookDB показано ниже

Hello World:Andreas:10:5:2
Teaching:Mary Ann:50:23:5

После того, как я ввел «Hello World» для заголовка и «Andreas» для автора, программа сможет войти в цикл, и эхо-книга будет успешно удалена.

Однако я проверил BookDB.txt, строка еще не была удалена, и мне интересно, почему.

Я надеюсь, что смогу получить некоторые ответы здесь, так как я занимаюсь исследованиями в Интернете, но до сих пор не получил ответов.

Заранее спасибо тем, кто помог! :)

Ответы на вопрос(2)

Ваш ответ на вопрос