小编Emm*_*own的帖子

一个符合 posix 的函数,用于用参数和正则表达式替换文本

我正在创建一个函数,以安全的方式使用正则表达式替换字符串,不可能注入字符,也不会放弃使用正则表达式:

#! /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 方式的扩展?

shell-script posix regular-expression replace

6
推荐指数
1
解决办法
1664
查看次数

标签 统计

posix ×1

regular-expression ×1

replace ×1

shell-script ×1