Я просмотрел много сообщений здесь и в других местах на эту тему, но ни одно из предложенных решений, похоже, не работает для меня.Мне нужно заменить строку (которая содержит ошибочный бессмысленный код PHP) на другую строку (содержащую правильный код PHP) во всех файлах в определенной папке.Я понимаю, что единственными символами, которые необходимо экранировать при использовании sed, являются амперсанды, обратные слеши и любые другие символы, используемые в качестве разделителя.
Строка, которую я хочу найти:Строка, которую я хочу заменить на это:
$arguments = func_get_args();$numargs = func_num_args();for($i=1; $i < $numargs; $i++){$arguments[$i] = &$arguments[$i];}
Я пробовал множество вариантов, но не могу заставить его работать.Я думаю, что следующая команда должна работать (но не работает).
find /folder/to/search -name Function.php -type f -exec sed -i 's|$arguments = func_get_args();$numargs = func_num_args();for($i=1; $i < $numargs; $i++){$arguments[$i] = $arguments = func_get_args();$arguments[$i];}|$arguments = func_get_args();$numargs = func_num_args();for($i=1; $i < $numargs; $i++){$arguments[$i] = \&$arguments[$i];}|' {} \;
Это сводит меня с ума - любая помощь будет принята с благодарностью!