unix — удалить строку из php файла, используя sed

Сайт взломали и он помещает код в верхнюю строку каждой страницы php перед открытием <?php тег, я хочу использовать sed, чтобы удалить его из всех файлов с помощью одной команды.

Начинается с

<?php if(!isset($GLOBALS["\x61\156\x75\156\x61"]))

и заканчивается

-1; ?><?php

Я думаю, что это вызвано старой версией плагина wordpress mailpoet (wysija).
http://blog.sucuri.net/2014/10/wordpress-websites-continue-to-get-hacked-via-mailpoet-plugin-vulnerability.html

Я попробовал ответы на эти два вопроса, но решения не убрали эти строки для меня. Я был бы признателен за любую помощь, так как я не эксперт по командам Unix.

Массовое удаление вредоносной строки из php файлов

Удаление строки в файле PHP с помощью Start и End

///РЕДАКТИРОВАТЬ

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

sed -i '1 s/^<\?php if(!isset($GLOBALS\[.*-1; \?>//' *.php

После того, как эта команда работает, я хочу объединить ее с командой find для запуска на всем сервере

-1

Решение

Вы можете попробовать эту команду GNU sed,

sed -r '1s/^<\?php if\(!isset\(\$GLOBALS\[.*-1; \?>//' *.php

Добавить встроенную опцию редактирования i сохранить сделанные изменения.

sed -ri '1s/^<\?php if\(!isset\(\$GLOBALS\[.*-1; \?>//' *.php
2

Другие решения

find . -name "*.php" -print0 | xargs -0 sed -ri '1s/^<\?php if\(!isset\(\$GLOBALS\[.*-1; \?>//' *.php
1

По вопросам рекламы [email protected]