vi查找和替换的使用方法
Thursday, May 13th, 2010当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里可没有菜单-〉查找,不过没关系,你在命令模式下敲斜杆(/)这时 在状态栏(也就是屏幕左下脚)就出现了 “/”然后输入你要查找的关键字敲回车就可以了。 如果你要继续查找此关键字,敲字符n就可以继续查找了。值得注意的是“/”是向下查找,而“?”是向上查找,而在键盘定义上“?”刚好是“/”的上档符。 vi是unix和linux系统上最强大和最普遍的文本编辑工具,一般而 言,对于初次接触vi的朋友,往往对它的字符替换不是很熟悉,下面做一个简单的介绍: 对于字符替换,应该解决这样几个问题: 用谁替换谁的问题; 在那个范围内进行查找和替换; 是替换查找到的第一个还是所有匹配的项全部替换; vi命令的各种选项就提供了这样的选择按住esc键,进入命令状态,然后 按:,进入命令模式,开始输入查找和替换命令, 一般形式如下: ranges/source/target/g 解释:range表示要搜索的范围 "s"这个字母表示搜索的意思,这个是不能缺少的. source表示要搜索的字串. target表示要进行替换的字串. g表示对于符合条件的字串全部进行替换. 其中range的取值如下: %表示全部的行; .表示当前行; $表示最后一行; 可以用具体的数字表示具体的行,如10,20等; 上述的标志可以进行组合: 如: .,$s/source/target/g 表示从当前行到最后一行的搜索替换; 又如10,20s/ 10,$s/等等组合; 举例说明: :s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1 :s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1 :.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1 :1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1 :g/str1/s//str2/g 功能同上从上述替换命令可以看到: g 放在命令末尾,表示对搜索字符串的每次出现进行替换; 不加 g,表示只对搜索字符串的首次出现进行替换; g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。