2015-06-21 4 views
0

Я использую Linux CentOS. У меня есть много папок внутри моего каталога www, и в этих папках много файлов. Я хотел бы изменить в этих файлах:Linux заменить слово во всех файлах

www.mysite.com

в

www.myNewSite.com

Есть ли способ запуска q и что заменит все?

+0

Это чуть дальше мой уровень скрипта-fu, но посмотрите на команду sed http://stackoverflow.com/questions/5171901/sed-command-find-and-replace-in-file-and-overwrite-file-doesnt-work- it-empties –

+0

Также, пожалуйста, не забудьте принять ваши ответы (все они), если они дали вам (нажав на отметку слева от ответов), было бы полезно сообществу – TheCodingFrog

ответ

0
sed --in-place 's/www.mysite.com/www.myNewSite.com/g' *.php 

должен сделать трюк.

2

Вы можете использовать команду sed. Ниже приведена команда. Я тестировал и, кажется, работаю.

[[email protected]/Users/chatar]$ find test -name '*.php' 
test/folder1/one.php 
test/folder1/two.php 
test/folder2/four.php 
test/folder2/three.php 
[[email protected]/Users/chatar]$ find test -type f -name '*.php' -exec grep www {} \; 
www.mysite.com 
www.mysite.com 
www.mysite.com 
www.mysite.com 
[[email protected]/Users/chatar]$ find test -type f -name '*.php' -exec sed -i -e 's/mysite/myNewSite/g' {} \; 
[[email protected]/Users/chatar]$ find test -type f -name '*.php' -exec grep www {} \; 
www.myNewSite.com 
www.myNewSite.com 
www.myNewSite.com 
www.myNewSite.com 
[[email protected]/Users/chatar]$ 
0

Вы также можете использовать Perl на лайнере:

perl -pi -e 's/www\.mysite\.com/www.myNewSite.com/g' *.php 

Если вы хотите сохранить копии исходных файлов (с .bak расширениями), используйте:

perl -pi.bak -e 's/www\.mysite\.com/www.myNewSite.com/g' *.php 
Смежные вопросы