Как рекурсивно удалить строки, содержащие определенный текст, используя PHP на Linux Server? - PullRequest
0 голосов
/ 29 января 2011

Я хочу найти во всем моем веб-сервере Linux ВСЕ файлы и подкаталоги, содержащие определенную строку.

Если эта строка найдена, удалите эту строку. Я делаю это потому, что вирус каким-то образом появился на моем сайте и добавляет одну строку кода, поэтому, если я найду эту строку, я могу легко удалить вирус.

Вот мой код

<code>$input = 'cd ../home/public_html
find ./ -type f -exec sed -i "/pantscow.ru/d" {} \ ';
echo $input;
$output = shell_exec($input);
echo "<pre>#$output
";

Можете ли вы сказать мне, почему это не работает? Он просто возвращает «#». Я работал раньше, чем несколько месяцев назад, но я забыл, как правильно выполнять.

Спасибо.

1 Ответ

0 голосов
/ 29 января 2011

Вы можете использовать эту единственную команду, чтобы найти все те php-файлы, которые имеют эту строку -

find . -name "*php" -exec grep -H abc {} \;

, где "abc" была строка, которую вы хотели найти.

...