vi的使用–使用vi查找和替换

vi提供了几种定位查找一个指定的字符串在文件中位置的方法。同时还提供一种功能强大的全局替换功能。

1. 查找一个字符串

一个字符串是一行上的一个或几个字符。
为查找一个字符串,在vi命令模式下键入“/”,后面跟要查找的字符串,再按回车。vi将光标定位在该串下一次出现的地方上。键入n跳到该串的下一个出现处,键入N跳到该串的上一个出现处。
为了在文件中回头查找,使用?代替/。在此情况下,键入n跳到该串的上一个出现处,键入N跳到该串的下一个出现处
如果vi找到要求的串,光标会停留在该串第一次出现的地方。如果没有找到该串,vi会在屏幕的最后一行显示pattern not found。
查找通常是区分大小写的,如果希望vi在查找过程中忽略大小写,则键入:set ic。要使其变回默认状态,则键入:set noic。
某些特殊字符(/&!.^*$\?)对查找过程有特殊意义,因此如果这些字符出现在查找串中必须进行转意。为转意一个特殊字符,需要在该字符前面加一个反斜杠(\)。例如,要查找字符串anything?,则键入/anything\?再按回车键。

2. 精确查找字符串

在vi中可以通过在字符串中加入如下特殊字符,从而使得查找更加精确。
匹配行首,字符串要以^开头
匹配行尾,字符串要以$结束
匹配词首,字符串的串首键入\<
匹配词尾,字符串的串尾键入\>
匹配任意字符,字符串的要匹配的位置键入一个点(.)
例如,
要查找一个以search为行首的行,则键入/^search ,要查找一个以search为行尾的行,则键入/search$。

3. 替换一个字符串

替换字符串是以查找为基础,所有用于查找的特殊匹配字符都可以用于查找和替换。替换时要指定替换的范围(1,n),1和n指行号,n为$时指最后一行。s是替换命令,g代表全程替换。例如,

:l,$s/patternl/pattern2/g——将行l至结尾的文字,patternl的字符串改为pattern2的字符串,如无g则仅更换每一行所匹配的第一个字符串,如有g则将每一个字符串均做更换。

 

from:https://www.cnblogs.com/PegasusWang/archive/2013/03/09/2951972.html

发表评论