您好我想使用sed替换符号之间的字符串
示例:-amystring -bxyz
用mystring
替换****
的内容
-a之后的值可以是-amystring 123 -bxyz
,-amystring 123<newline_char>
,-a'mystring 123' -bxyz
,-a'mystring 123'<newline_char>
我尝试使用正则表达式,但在所有情况下都不起作用
sed -re "s#(-w)([^\s\-]+)#\1**** #g"
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
MyString="YourStringWithoutRegExSpecialCharNotEscaped"
sed "s/-a${MyString} -b/-a**** -b/g"
如果您可以为任何正则表达式键字符串转义字符串,例如* +。 \ /有类似
的东西echo "${MyString}" | sed 's/\[*.\\/+?]/\\&/g' | read -r MyString
在我们之前它在sed。
否则,您需要更好地定义边缘模式