在用Linux操作文件时,经常需要将文件中的部分字符串替换为指定的字符串,如果手动挨个替换则效率低且容易出错,本文主要了如果利用vim命令来快速进行多种模式的文本替换操作(单行替换、多行替换及全文替换)。
工具/原料
Linux Vim
一、Let's开始
1、我们以操作文件db_install.rsp为例进行介绍,执行命令vimdb_install.rsp打开要操作的文件,如下图所示(下面截取了此文件的1-33行)
2、可以发现此文件中有很多地方出现了oracle字符串,那我们接下来就以将oracle替换为hello进行详细介绍。
二、字符串查找
1、在命令模式下执行已以下命令可以进行全文搜索:/oracle [/表示向下查找]?orace[?表示向上查找]上面两个命令可以配合n,N来执行【查找下一个】操作,n表示向下【查找下一个】,N表示向上【查找下一个】】
三、单行替换
1、命令: s/oracle/hello说明:将20行的第一个oracle替换为hello操作步骤:将光标定位到20行,在命令模式下输入命令s/oracle/hello,按回车执行命令后可以发现20行的第一个oracle被替换为了hello。
2、命令: s/oracle/hello/g说明:将20行的所有oracle替换为hello操作步骤:将光标定位到20行,在命令模式下输入命令s/oracle/hello/g,按回车执行命令后可以发现20行的第所有oracle被替换为了hello。备注:最后的一个参数g(即global)表明要替换该行的所有oracle。
三、多行替换
1、命令: A,Bs/oracle/hello说明:参数A表明开奘疚豫枭始行,B表示结束行,如果B为$,则表示为最后一行。此命令表示从A行开始到B行结束的每行的第一个oracle要替换为hello。举例:在命令模式下输入命令20,30s/oracle/hello,按回车执行命令后可以发现20-30行的每行第一个oracle被替换为了hello。
2、命令:A,Bs/oracle/hello/g说明:此命令表示从A行开始到B行结束的每行的每一个oracle要替换为hello。举例:在命令模式下输入命令20,30s/oracle/hello/g,按回车执行命令后可以发现20-30行的所有oracle被替换为了hello。
四、全文替换
1、命令:%s/oracle/hello/g说明:此命令表示将当溱碳叛鹤前文件的所有oracle替换为hello。举例:在命令模式下输入命令20,30s/oracle/hello/g,按回车执行命令后可以发现文件的所有行的所有oracle被替换为了hello。注意:如果想替换所有行的第一个oracle,则只需要将参数/g去除即可。