linux命令行学习(51):vi的替换命令

linux命令行学习(51):vi的替换命令_第1张图片

完整格式

:[range]substitute/from/to/[flags]

简化格式

:[range]s/from/to/[flags]

from是被搜索的字符串,to是用来替换的字符串

一、[range]

表示搜索行

默认的搜索只作用于当前行。

  1 %:命令作用于全部行。

  2.(圆点):命令作用于当前行。

  3 n:命令作用于第n行,n是一个整数。

  4 n1,n2:命令作用于n1行到n2行。注意负数表示倒数。

二、[flags]

1 g:表示在搜索行中替换每一个匹配,没有g则只在每行中替换第一个匹配。g是global的第一个字母。

2 c:每次替换前要询问,否则不询问。c是confirm的第一个字母。

3 p:打印最后一个被修改的行。

三、询问的回答

当使用标志c时,替换前要询问,可以作下面几种回答:

y:执行替换

n:跳过此次替换

a:执行此次替换和之后的所有替換

q或者ESC:停止替换

l:执行此次替换并退出替换。是last的缩写。

Ctrl-E, Ctrl-Y:分别是向下滚动和向上滚动,能用于查看替换处的上下文(注:我的centos系统上未能实现)

四、例

1 :1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换

2 :10s/from/to/ 表示只在第10行搜索替换

3  :%s/from/to/ 表示在所有行中搜索替换

4  :1,$s/from/to/ 同上

你可能感兴趣的:(linux命令行学习(51):vi的替换命令)