我正在尝试命令在目录中的一批php文件上执行perl替换。我想要替换的字符串中有单引号,我无法正确地转义in shell。
我尝试用未转义的引号回显字符串,看看perl会得到什么:
echo 's/require_once\('include\.constants\.php'\);/require_once\('include\.constants\.php'\);require_once\("\./functions/include\.session\.inc\.php"\);/g'
它在结果中没有单引号:
s/require_once\(include.constants.php\);/require_once\(include.constants.php\);require_once\("\./functions/include\.session\.inc\.php"\);/g
但是,当我试图逃避单引号时:
echo 's/require_once\(\'include\.constants\.php\'\);/require_once\(\'include\.constants\.php\'\);require_once\("\./functions/include\.session\.inc\.php"\);/g'
我得到提示来完成命令:
>
我想要解析的是:
s/require_once\('include.constants.php'\);/require_once\('include.constants.php'\);require_once\("\./functions/include\.session\.inc\.php"\);/g
我究竟做错了什么?