我正在使用Linux CentOS。我的www
目录中有很多文件夹,这些文件夹中有很多文件。我想更改这些文件:
www.mysite.com
到
www.myNewSite.com
有没有办法运行q命令,这将取代所有?
答案 0 :(得分:2)
您可以使用sed
命令。以下是命令。我测试过,看起来很有效。
[chatar@/Users/chatar]$ find test -name '*.php'
test/folder1/one.php
test/folder1/two.php
test/folder2/four.php
test/folder2/three.php
[chatar@/Users/chatar]$ find test -type f -name '*.php' -exec grep www {} \;
www.mysite.com
www.mysite.com
www.mysite.com
www.mysite.com
[chatar@/Users/chatar]$ find test -type f -name '*.php' -exec sed -i -e 's/mysite/myNewSite/g' {} \;
[chatar@/Users/chatar]$ find test -type f -name '*.php' -exec grep www {} \;
www.myNewSite.com
www.myNewSite.com
www.myNewSite.com
www.myNewSite.com
[chatar@/Users/chatar]$
答案 1 :(得分:0)
sed --in-place 's/www.mysite.com/www.myNewSite.com/g' *.php
应该这样做。
答案 2 :(得分: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