加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

搜索和删除多行

发布时间:2020-12-15 09:18:28 所属栏目:安全 来源:网络整理
导读:在vim :g/George Bush/d 删除所有行与乔治·布什。 如果我想删除下面从乔治·布什开始的5行怎么办? 另一个现实的例子是在log4net日志中找到所有DEBUG,并删除直到堆栈跟踪结束(我知道将在其下面另外10行) :global命令是你的朋友 – 学习得很好。它允许你运
在vim

:g/George Bush/d

删除所有行与乔治·布什。

如果我想删除下面从乔治·布什开始的5行怎么办?

另一个现实的例子是在log4net日志中找到所有DEBUG,并删除直到堆栈跟踪结束(我知道将在其下面另外10行)

:global命令是你的朋友 – 学习得很好。它允许你运行任意:ex命令在每一行匹配正则表达式。它缩写为:g。

要删除与“George Bush”匹配的所有行:

:g/George Bush/ d

后面的命令可以有自己的地址/范围前缀,它将相对于匹配的行。所以删除第5行后乔治·布什:

:g/George Bush/ .+5 d

要删除DEBUG日志条目:

:g/DEBUG/ .,+10 d

如果你知道堆栈跟踪是可变长度,但总是在空白行(或其他正则表达式)结束:

:g/DEBUG/ .,/^$/ d

你也可以在不匹配的每一行上执行一个命令:g!例如在不包含“吮吸”一词的每一行上用“奥巴马”代替“布什”:

:g!/sucks/ s/Bush/Obama/

默认命令是打印消息窗口的行。例如以列出标记为TODO的每一行:

:g/TODO

这也有助于检查正则表达式匹配您预期之前,你做一些破坏性的行。

您可以使用“|”链接多个命令。例如改变布什到奥巴马和乔治到巴拉克每行不包含“吮吸”:

:g!/sucks/ s/Bush/Obama/g | s/George/Barack/g

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读