Как сделать многострочный поиск и заменить текст (удалить) рекурсивно

Я хочу перейти рекурсивно через каталог и искать конкретный контент во всех файлах. Затем содержимое должно быть заменено, если найдено. С одной строкой я бы сделал что-то вроде этого:

find . -type f -exec sed -i -e 's@code2replace@@g' {} \;

Он иногда работал, а иногда и нет (недостаточно места на жестком диске …). Теперь мне нужно что-то для многоплодной замены. Файл orignal должен быть перезаписан и многострочный шаблон может быть довольно длинным. Поэтому, возможно, хранить во внешнем файле было бы проще.

Код, который должен быть заменен, выглядит следующим образом:

 #c3284d# echo(gzinflate(base64_decode("sylOLsos...."))); #/c3284d# 

И какие персонажи мне нужно бежать?

Сед может многое сделать рядом с простым поиском и заменой, включая многострочную поддержку.

Вот сообщение в блоге о том, как кто-то это сделал (он написал сценарий sedml для «sed multiline»: http://austinmatzko.com/2008/04/26/sed-multi-line-search-and-replace/

Основная идея состоит в том, чтобы скопировать весь файл в «hold buffer» sed, запустить регулярное выражение и затем записать измененный файл. Однако этот подход может быть довольно медленным, если ваши файлы большие, поскольку вы загружаете целый файл за раз в память.