gotowqj 2010-06-23
linux中如何替换文件中的字符串
方法有二:
(一)通过vi编辑器来替换。
参考博文:
http://www.linuxdiyf.com/viewarticle.php?id=99843
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用编辑软件进行替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
:s/well/good/替换当前行第一个well为good
:s/well/good/g替换当前行所有well为good
:n,$s/well/good/替换第n行开始到最后一行中每一行的第一个well为good
:n,$s/well/good/g替换第n行开始到最后一行中每一行所有well为good
n为数字,若n为.,表示从当前行开始到最后一行
:%s/well/good/(等同于:g/well/s//good/)替换每一行的第一个well为good
:%s/well/good/g(等同于:g/well/s//good/g)替换每一行中所有well为good
可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:s#well/#good/#替换当前行第一个well/为good/
:%s#/usr/bin#/bin#g
可以把文件中所有路径/usr/bin换成/bin(二)Sumly法直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
例1
执行命令:
perl-p-i-e"s/China/Sumly/g"/www/*.htm/www/*.txt
上面的意思是说将www文件夹下所有的htm和txt文件中的“China”都替换为“Sumly”例2
执行命令:
perl -p -i -e "s/mry_production/mry_production2/g" ./*.sql
上面的意思是将当前目录下所有的sql文件中的“mry_production”替换成“mry_production2”