“在vi中进行批量替换”的版本间的差异

来自YTYZX有图有真相的百科
跳转至: 导航搜索
(恢复45.77.171.9讨论)的编辑至221.122.91.71的最后版本)
 
(未显示3个用户的19个中间版本)
第1行: 第1行:
 批量替换
+
  在vi(vim)中可进行 批量替换 ,格式为:%s/source_pattern/target_pattern/g,其中source_pattern为原字符,target_pattern为替换后的字符,本例中将小写t替换为大写T。
:%/source/target
+
 
 +
1.输入“vim anaconda-ks.cfg”打开一个文件。
 +
   备注:亦可输入“vi anaconda-ks.cfg”。
 +
[[File:ViBatchR1.png]]
 +
 
 +
2.文件内容如下。
 +
[[File:ViBatchR2.png]]
 +
 
 +
== 替换每行所有符合规则的字符 ==
 +
 
 +
3.按两次Esc键确保进入底线命令模式(Last line mode)并输入“:%s/t/T/g”并按回车键确定。
 +
[[File:ViBatchR3.png]]
 +
 
 +
4.亦可输入“:g/t/s//T/g”并按回车键确定,结果与上面相同。
 +
   备注:注意s后面是两个斜杠。
 +
[[File:ViBatchR5.png]]
 +
 
 +
5.替换效果如下,所有“t”已经被替换为“T”。
 +
[[File:ViBatchR4.png]]
 +
 +
== 替换每行第一个符合规则的字符 ==
 +
6.以上为替换所有行的所有“t”为“T”,如需只替换每行的第一个“t”为“T”,则输入“:%s/t/T/”并按回车键确定。
 +
   备注:注意后面没有加g。
 +
 
 +
[[File:ViBatchR6.png]]
 +
 
 +
7.亦可输入“:g/t/s//T/”并按回车键确定,结果与上面相同。
 +
   备注:注意s后面是两个斜杠。
 +
 
 +
[[File:ViBatchR8.png]]
 +
 
 +
8.替换效果如下,每行的第一个小写t被替换为大写T。
 +
 
 +
[[File:ViBatchR7.png]]
 +
 
 +
== 替换光标所在行所有符合规则的字符 ==
 +
 
 +
9.如需将光标所在行所有t替换为T,则输入“:s/t/T/g”并按回车键确定。
 +
 
 +
[[File:ViBatchR12.png]]
 +
 
 +
10.替换效果如下,光标所在行所有t已经被替换为T。
 +
 
 +
[[File:ViBatchR13.png]]
 +
== 替换光标所在行第一个符合规则的字符 ==
 +
 
 +
11.将光标移动到第二行(即# System authorization information行)。
 +
 
 +
[[File:ViBatchR9.png]]
 +
 
 +
12.输入“:s/t/T/”并按回车键确定。
 +
 
 +
[[File:ViBatchR10.png]]
 +
 
 +
13.替换效果如下,只有第二行的第一个t被替换为T,其他均未替换。
 +
 
 +
[[File:ViBatchR11.png]]
 +
 
 +
== 替换特定行到结尾行第一个符合规则的字符 ==
 +
 
 +
14.输入“:6,$s/t/T/”并按回车键确定。
 +
    备注:此处将第6行到结尾行的第一个“t”替换为“T”,实际使用中可根据需要自行修改开始行数。
 +
 
 +
[[File:ViBatchR14.png]]
 +
 
 +
15.替换效果如下。
 +
    备注:前5行的第一个“t”没有替换为“T”。
 +
[[File:ViBatchR15.png]]
 +
 
 +
== 替换特定行到结尾行所有符合规则的字符 ==
 +
 
 +
16.输入“:6,$s/t/T/g”并按回车键确定。
 +
    备注:此处将第6行到结尾行的第一个“t”替换为“T”,实际使用中可根据需要自行修改开始行数。
 +
 
 +
[[File:ViBatchR16.png]]
 +
 
 +
17.替换效果如下。
 +
    备注:前5行的“t”没有替换为“T”。
 +
 
 +
[[File:ViBatchR17.png]]
 +
 
 +
== 替换包含/的字符 ==
 +
 +
18.如需将“t”替换为“T/”则输入“:%s#t#T/#g”并按回车键确定。
 +
    备注:使用#替换/可避免将/识别为分隔符。
 +
 
 +
[[File:ViBatchR18.png]]
 +
 
 +
19.替换效果如下,所有“t”已经被替换为“T/”。
 +
 
 +
[[File:ViBatchR19.png]]
 +
 
 +
20.同理可输入“:%s#T/#t#g”将“T/”全局替换为“t”。
 +
 
 +
[[File:ViBatchR20.png]]
 +
 
 +
21.替换效果如下。
 +
 
 +
[[File:ViBatchR2.png]]

2022年3月24日 (四) 20:25的最新版本

在vi(vim)中可进行批量替换,格式为:%s/source_pattern/target_pattern/g,其中source_pattern为原字符,target_pattern为替换后的字符,本例中将小写t替换为大写T。

1.输入“vim anaconda-ks.cfg”打开一个文件。
  备注:亦可输入“vi anaconda-ks.cfg”。

ViBatchR1.png

2.文件内容如下。

ViBatchR2.png

替换每行所有符合规则的字符

3.按两次Esc键确保进入底线命令模式(Last line mode)并输入“:%s/t/T/g”并按回车键确定。

ViBatchR3.png

4.亦可输入“:g/t/s//T/g”并按回车键确定,结果与上面相同。
  备注:注意s后面是两个斜杠。

ViBatchR5.png

5.替换效果如下,所有“t”已经被替换为“T”。

ViBatchR4.png

替换每行第一个符合规则的字符

6.以上为替换所有行的所有“t”为“T”,如需只替换每行的第一个“t”为“T”,则输入“:%s/t/T/”并按回车键确定。
  备注:注意后面没有加g。

ViBatchR6.png

7.亦可输入“:g/t/s//T/”并按回车键确定,结果与上面相同。
  备注:注意s后面是两个斜杠。

ViBatchR8.png

8.替换效果如下,每行的第一个小写t被替换为大写T。

ViBatchR7.png

替换光标所在行所有符合规则的字符

9.如需将光标所在行所有t替换为T,则输入“:s/t/T/g”并按回车键确定。

ViBatchR12.png

10.替换效果如下,光标所在行所有t已经被替换为T。

ViBatchR13.png

替换光标所在行第一个符合规则的字符

11.将光标移动到第二行(即# System authorization information行)。

ViBatchR9.png

12.输入“:s/t/T/”并按回车键确定。

ViBatchR10.png

13.替换效果如下,只有第二行的第一个t被替换为T,其他均未替换。

ViBatchR11.png

替换特定行到结尾行第一个符合规则的字符

14.输入“:6,$s/t/T/”并按回车键确定。
   备注:此处将第6行到结尾行的第一个“t”替换为“T”,实际使用中可根据需要自行修改开始行数。

ViBatchR14.png

15.替换效果如下。
   备注:前5行的第一个“t”没有替换为“T”。

ViBatchR15.png

替换特定行到结尾行所有符合规则的字符

16.输入“:6,$s/t/T/g”并按回车键确定。
   备注:此处将第6行到结尾行的第一个“t”替换为“T”,实际使用中可根据需要自行修改开始行数。

ViBatchR16.png

17.替换效果如下。
   备注:前5行的“t”没有替换为“T”。

ViBatchR17.png

替换包含/的字符

18.如需将“t”替换为“T/”则输入“:%s#t#T/#g”并按回车键确定。
   备注:使用#替换/可避免将/识别为分隔符。

ViBatchR18.png

19.替换效果如下,所有“t”已经被替换为“T/”。

ViBatchR19.png

20.同理可输入“:%s#T/#t#g”将“T/”全局替换为“t”。

ViBatchR20.png

21.替换效果如下。

ViBatchR2.png