2016-12-21 6 views
6

Я пытаюсь избавиться от проблемы с хакером на некоторых моих установках wordpress.Нужно удалить первые N строк файлов результатов grep

Этот парень ставит 9 строк кода в голову нескольких файлов на моем сервере ... Я пытаюсь использовать grep и sed для решения этой проблемы.

Im пытается:

grep -r -l "//360cdn.win/c.css" | xargs -0 sed -e '1,9d' < {} 

Но ничего не происходит, если удалить -0 from xargs , the result of the files found are clean, but they are not overwriting the origin file with the sed` результат, может кто-нибудь помочь мне с этим?

Большое спасибо!

ответ

2

Вы должны использовать опцию --null в grep команды для вывода байт NUL или \0 после каждого файла в grep выходе. Кроме того, использование -i.bak в sed для встроенного редактирования каждого файла:

grep -lR --null '//360cdn.win/c\.css' . | xargs -0 sed -i.bak '1,9d' 
+1

большое спасибо !!!! Я пытаюсь решить это в течение последних 4 часов! = D –

+1

@ RenanCorrêaPinto, чтобы сказать «спасибо» на [так], путем * принятия * (и/или * upvoting *) ответа. –

0

Что случилось с итерации над файлами directly¹?

И вы можете добавить -i квартиру СЭД так, что файлы редактируются я н-место

grep -r -l "//360cdn.win/c.css" | while read f 
do 
    sed -e '1,9d' -i "${f}" 
done 

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

Смежные вопросы