我正在创建一个函数,以安全的方式使用正则表达式替换字符串,不可能注入字符,也不会放弃使用正则表达式:
#! /bin/sh
stringer()
{
pattern="${1}"
replace="${2}"
printf '%s\n' "examp/e w\\th sed: " | sed "s/${pattern}/${replace}/g"
}
stringer "\\/" "l"
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,但如果我使用:
stringer "/" "l"
Run Code Online (Sandbox Code Playgroud)
它会导致一个 sed 错误,关于这个我知道输入参数可以被转义,但是它不能与正则表达式一起使用,我希望能够将它与正则表达式一起使用,有或没有任何建议sed 但没有符合 posix 方式的扩展?