Здравствуйте.
Проблема следующая. Мой хостинг взломали и в куче файлов добавили какой-то дурацкий код с iframe. После некоторых экспериментов с коммандами grep и sed, мне удалось вычистить этот вредоносный код.
Проблема в том, что во многих файлах код был вставлен внутрь закрывающего тега
, поэтому сечас в этих файлах тег разорван, т.е мы имеем что-то типа:
</</p>
body>
или
dy>
или еще несколько похожих комбинаций.
Я, к сожалению, очень мало понимаю в UNIX, поэтому никак не могу составить выражение, которое бы находило все нужные случаи.
«</[^>][:space:]$]+[^>]>» или «</[body]{0,4}[:space:]$]+[body]{0,4}>» это то что мне кажется должно соответствовать моему фрагменту, но не работает, значит я идиот. Помогите, пожалуйста, я как-то туплю и ничего не могу придумать.
Заранее большое всем спасибо
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
У sed/grep и т.п. есть некоторые хитрости при работе с многострочностью. Поскольку я люблю perl и у меня хорошее настроение…
Надеюсь, суть понятна :-) (Скрипту можно через пробел передавать сразу кучку файлов: «perl a.pl a.txt b.txt dir/c.txt». Если в них нет проблемных
, изменяться файлы не будут и во время работы скрипта для них не выведется сообщение «Something has been replaced!».)
Перед запуском на всякий случай настоятельно рекомендую сделать backup. Мало ли чего…
P.S. Про хитрости многострочной работы sed — см. http://docstore.mik.ua/orelly/unix/sedawk/ch06_01.htm
Огромное спасибо за помощь!