Linux替换所有文件中的单词

时间:2015-06-21 15:08:23

标签: linux

我正在使用Linux CentOS。我的www目录中有很多文件夹,这些文件夹中有很多文件。我想更改这些文件:

  

www.mysite.com

  

www.myNewSite.com

有没有办法运行q命令,这将取代所有?

3 个答案:

答案 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