如何在bash中替换包含字符`的字符串?

时间:2012-10-18 20:03:07

标签: perl replace

我有一个像这样的字符串

export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

我想用这个替换

export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf

我正在尝试像这样使用perl,但它不起作用

sudo perl -pi -e 's#\`$EASY_RSA/whichopensslcnf $EASY_RSA\`"#export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf#g' fileDirectory

任何提示?

提前致谢!

1 个答案:

答案 0 :(得分:1)

s#\`$EASY_RSA/whichopensslcnf $EASY_RSA\`"#...#g
    ^                         ^          ^
    |                         |          |
    +------------+------------+       Not in 
                 |                    input
            Not escaped.              string
     Perl interpolates $EASY_RSA

修正:

sudo perl -i -pe's#`\$EASY_RSA/whichopensslcnf \$EASY_RSA`#export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf#g' file