Удаление инъекции с использованием регулярного выражения

Я ищу, чтобы отделить эту конкретную строку от строки 1 около 16 000+ файлов.

Начало инъекции:

<?php if(!isset($GLOBALS` Middle of the injection is: `7860msvd` And end of the injection is: `oqggbrtstz-1; ?> 

Этот контент находится только в 1 строке (первый)

Не знаю, как это сделать, но то, что у меня есть, следующее:

sed -i -e '1 s/.*<\?php if\(\!isset\(\$GLOBALS\.*7860msvd.*oqggbrtstz-1; ?>//g'

error: sed: -e expression #1, char 67: Unmatched ( or \(

Любая помощь была бы потрясающей.

    Вам не хватает литературного персонажа ? и использование -r получить результат ожидания

     sed -ri '1 s/.*<\?php if\(\!isset\(\$GLOBALS.*7860msvd.*oqggbrtstz-1; \?>//g' File -r, --regexp-extended use extended regular expressions in the script. 

    @josifoski прав, не избегайте скобок. Незначительная коррекция его ответа, чтобы избежать снятия кода перед инъекцией:

    sed -i -e '1 s/<\?php if(\!isset(\$GLOBALS.*7860msvd.*oqggbrtstz-1; \?>//g'

    Один важный недостающий ответ – «не делай этого». Затвердите сайт, прежде чем делать что-либо еще. Затем восстановите сайт из хорошо известных резервных копий или переустановите сайт из контроля версий.

    Поиск и исправление известной проблемы не является правильным решением. Он устранит один очевидный симптом, но не сделает ничего, чтобы вас снова не взломали. И с любой существенной базой кода вероятность того, что злоумышленник оставит другие сюрпризы, которые вы просто еще не заметили.

    синтаксическая коррекция вашей команды

     sed -i -e '1 s/.*<\?php if(\!isset(\$GLOBALS\.*7860msvd.*oqggbrtstz-1; \?>//g' 

    не нужно бежать (), когда не присутствует обратная связь и отсутствует выход?