我想使用 Vi 编辑器删除文件中的多行。请给我想法或建议。
我的目标是这样的:
前:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.
.
29
30
.
.
Run Code Online (Sandbox Code Playgroud)
后;
1
10
20
30
40
.
.
Run Code Online (Sandbox Code Playgroud)
小智 17
如果您的意思是要保留每 10 行并删除其余行:
%norm 9ddj
Run Code Online (Sandbox Code Playgroud)
解释:
% 整个文件
norm 在“正常模式”下执行以下命令
9dd 删除 9 行
j 向下移动一行(即保留它)
注意:这将删除第一行。
改编自http://www.rayninfo.co.uk/vimtips.html
或者使用全局命令:
:g/^/+ d9或者你可以使用awk:
%!awk 'NR \% 10 == 0 || NR == 1'
Run Code Online (Sandbox Code Playgroud)
Sté*_*las 12
:2,$v/0$/d
Run Code Online (Sandbox Code Playgroud)
0从第二行开始删除不以结尾的行。