MSYS でのバッシングの問題: 次の単純な関数は、ユーザー入力 string に一致するすべての行を削除する必要があります$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 関数での使用は機能します。)
助けと説明をありがとう!