Я пытаюсь создать команду для подстановки perl для пакета php-файлов в каталоге. Строка, которую я хочу заменить, содержит одинарные кавычки, и я не могу заставить ее правильно экранировать содержимое оболочки.
Я попытался повторить строку с неэкранированными кавычками, чтобы увидеть, что 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
Что я делаю неправильно?