linuxvi命令替换
linuxvi命令替换详细介绍
在 Linux 的vi编辑器里,有多种方式可以进行文本替换操作,下面为你介绍几种常见情形:
1. 替换当前行中的指定内容
要把当前行里的第一个匹配内容替换成新内容,可使用如下命令:
plaintext
:s/旧内容/新内容/
若要把当前行里的所有匹配内容都替换成新内容,使用:
plaintext
:s/旧内容/新内容/g
2. 替换指定范围内的内容
替换从第m行到第n行里的第一个匹配内容,使用:
plaintext
m,n:s/旧内容/新内容/
替换从第m行到第n行里的所有匹配内容,使用:
plaintext
m,n:s/旧内容/新内容/g
3. 替换全文内容
将文档中所有匹配内容替换成新内容,使用:
plaintext
:%s/旧内容/新内容/g
4. 替换时进行确认
在替换时,每一次替换前都会询问是否进行替换,避免误替换。
plaintext
:%s/旧内容/新内容/gc
这里的c代表确认(confirm),每次替换前会显示如下提示:
plaintext
replace with 新内容 (y/n/a/q/l/^E/^Y)?
其中各选项含义如下:
y:替换当前匹配项。n:不替换当前匹配项。a:替换从当前位置开始的所有匹配项,不再询问。q:退出替换操作。l:替换当前匹配项后退出替换操作。^E:向下滚动屏幕。^Y:向上滚动屏幕。
示例
假设你有一个文件,内容如下:
plaintext
hello worldhello python
若你想把所有的hello替换成hi,可在vi编辑器的命令模式下输入:
plaintext
:%s/hello/hi/g
替换后文件内容变为:
plaintext
hi worldhi python
9123hi worldhi python
这些就是vi编辑器里常见的替换命令,能依据具体需求灵活运用。