我有一个用户输入,可用于可能包含元字符的搜索字符串
例如 C# 或 C++
我在函数中的 grep 命令是:
grep -E "$1|$2" test.txt
直接替换下:
grep -E "C\+\+|testWord" test.txt
grep -E "C\#|testWord" test.txt
第一个很好地抓住了线条,但不是第二个。奇怪的是,# 被完全忽略了。没有直接替换,两者都用 c 后跟 testWord 而不是 c++ 和 c# 来捕获任何东西
我试过用 sed 处理它
$temp = `echo $1 | sed 's/[\#\!\&\;\`\"\'\|\*\?\~\<\>\^\(\)\[\]\{\}\$\+\\]/\\&/g'`
但它不能正常工作。或者有没有其他方法可以使用元字符处理用户输入?
提前致谢