Задать вопрос
@DenisO

Экранизация кавычек в sed

Добрый день.

Случилась проблема на сайте одного заказчика — злобный вирус пролез на сервер и жестоко покарал большую часть php и html файлов, дописав следующее:



Я хочу автоматом с помощью find -exec sed все убрать. Но не получается написать правильное выражение для sed'а.
1. В коде выше используются одновременно и одинарные и двойные кавычки — не понимаю как это правильно сэкранировать.

2. Я сумел почти решить проблему, разбив на несколько sed'ов:
sed «s#'http://firefoxstabs.com/'##g» includes/menu.php |
sed «s#'.js'##g» |
sed 's##?>#g'

Остался один косяк — это все выводится в консоль. Когда я пытаюсь сделать sed… | sed… | sed… > file в файле оказывается пустота. Что не правильно?
  • Вопрос задан
  • 9198 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя asm0dey К ответам на вопрос (5)
asm0dey
@asm0dey
Может быть надо как-нибудь так:
#!/bin/bash
function sedMyFile(){
sed1 -i ... $1
sed2 -i ... $1
sed3 -i ... $1
}

ls *.js|xargs sedMyFile -


Не проверял, работает ли, но, думается мне, как-то так должно бы.
Ответ написан