MSYS 中的抨击问题:以下简单函数应删除与用户输入字符串匹配的所有行$kwd
。
function delnote () {
read kwd
sed -e "/$kwd/d" -i ~/notes.txt
}
相反,我不断收到“sed -e expression #1, char 0: no previous regular expression”错误。为什么?
我对 bash 和 sed(以及 MSYS)都是新手,所以我不确定这是将变量传递给 sed 还是以错误的方式使用引号的问题(我已经毫不费力地尝试用""
许多''
变体替换)。我尝试使用此处提供的功能而不是我自己的功能,但仍然遇到相同的错误。
如果这是引号放错的问题,那么 sed 和 grep 在 bash 中处理用户输入的方式有什么区别?(与 sed 不同,'"$*"'
在 grep 函数中使用确实有效。)
感谢您的任何帮助和解释!