匹配之间的sed替换值

时间:2013-12-02 11:47:20

标签: sed

您好我想使用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"

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

MyString="YourStringWithoutRegExSpecialCharNotEscaped"
sed "s/-a${MyString} -b/-a**** -b/g"

如果您可以为任何正则表达式键字符串转义字符串,例如* +。 \ /有类似

的东西
echo "${MyString}" | sed 's/\[*.\\/+?]/\\&/g' | read -r MyString

在我们之前它在sed。

否则,您需要更好地定义边缘模式