linux中如何替换文件中的字符串

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”

相关推荐