Как удалить текст из всех файлов на сервере, обойдя симлинки?

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

nuradura
Сообщения: 2

Как удалить текст из всех файлов на сервере, обойдя симлинки?

Сообщение nuradura »

Добрый день!

Есть вредоносный код во всех .html и .php, да это и не важно.
Нужно удалить этот код из тысячи файлов.

grep "microssearch" -r *

Нашел.
А как удалить только это слово из всех файлов?

Заранее большое спасибо!

АПД: Есть еще такая сложность -
grep: warning: www/fine-trip.ru.orig/www: recursive directory loop
grep: warning: www/fine-trip.ru.orig/fine-trip: recursive directory loop

То есть на хосте симлинки и они циклятся.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5405
ОС: Gentoo

Re: Как удалить текст из всех файлов на сервере, обойдя симлинки?

Сообщение /dev/random »

find /путь -type f -name '*.php' -exec sed -i 's/слово//g' {} \;

Если нужно переходить по симлинкам (т.е. если есть места, куда без симлинков не попасть), то в начало следует добавить опцию -L
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Как удалить текст из всех файлов на сервере, обойдя симлинки?

Сообщение drBatty »

nuradura писал(а):
21.09.2011 11:11
А как удалить только это слово из всех файлов?

Как выполнить команду для всех файлов в текущем каталоге, в т.ч. и для ссылок на другие каталоги, с шаблоном "*.php"?

Shell

find -L . -type f -name "*.php" -exec command {} \;



Как удалить определённое слово WORD из файла file.php?

Shell

sed -i*~ 's/WORD//g' file.php



/dev/random
опередили...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
nuradura
Сообщения: 2

Re: Как удалить текст из всех файлов на сервере, обойдя симлинки?

Сообщение nuradura »

Большое спасибо, думаю, это как раз то, что мне нужно.
Спасибо сказали: