найти и заменить текст в *.php, *.html

J
На сайте с 06.07.2011
Offline
169
715

Подскажите пожалуйста команду или скрипт.

Как в консоле заменить в дериктории /domain.com/ все *.html, *.php файлы в которых есть слово к примеру auto на disable.

Лучше конечно скрипт, директорий около 30-ти, что бы вбил в него и скрипт сделал, что нужно.

Да и ещё некоторый текст к примеру японский, нужно что бы сохранение было в нужной кодировке.

S
На сайте с 08.08.2014
Offline
36
#1

grep -rl 'auto' ./ | xargs sed -i 's/auto/disable/g'

?

покупаю сдл сайты о собаках и кошках
J
На сайте с 06.07.2011
Offline
169
#2
sholomitcky:
grep -rl 'auto' ./ | xargs sed -i 's/auto/disable/g'
?

А как указать расширения в каких файлах заменять код (*.php,*.html)?

Спасибо, а может есть какой-нибудь скрипт в котором просто указывает дериктории?

---------- Post added 01-10-2015 at 10:41 ----------

sholomitcky:
grep -rl 'auto' ./ | xargs sed -i 's/auto/disable/g'
?

Никак не могу понять, где нужно указывать расширения поиска? *.html и *.php

---------- Post added 01-10-2015 at 11:09 ----------

sholomitcky:
grep -rl 'auto' ./ | xargs sed -i 's/auto/disable/g'
?

find -name '*html*' -exec grep -rl 'auto' ./ | xargs sed -i 's/auto/disable/g'

Такая команда почему-то не работает и как указать 2 расширения php и html тоже

Пишет

find: missing argument to `-exec'

sed: no input files

---------- Post added 01-10-2015 at 11:43 ----------

Вообщем правильно будет так:

grep -rl --include=*.html --include=*.php 'auto' ./ | xargs sed -i 's/auto/disable/g'

J
На сайте с 06.07.2011
Offline
169
#3

Может кто подскажет, как реализовать это в скрипте??

Вбиваешь пути и скрипт меняет одно значение на другое по расширениям файлов (html,php)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий