用vim替换文件中含有指定关键字的那些行中的字符

现在有一个文件aa.txt,内容如下:

[root@server2 ~]# cat aa.txt 
aaaaaaaaaaa 11
bbbbbbbbbbbb bb 11
c 11 cc
[root@server2 ~]#

现在想把结尾是11的那些行最后的换行符替换成 空格.

使用vim编辑打开aa.txt之后,在末行模式输入
%g/11$/s/\n/ /g
这里%表示全文。
这段 g/11$/
g表示开始匹配指定的行,哪些行呢?由g后面的//里指定。这里写的是11$,表示以11结尾的那些行。
这段s/\n/ /g
s表示替换,把那些行的换行符(\n表示)换成" "即替换成空格。

最终的效果是

aaaaaaaaaaa 11 bbbbbbbbbbbb bb 11 
c 11 cc

当然要删除最后的换行符,可以写成%g/11$/s/\n//g 。

相关新闻

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

                                                                                                                                    RHCE9学习指南连载,点击阅读