搜索和删除多行

前端之家收集整理的这篇文章主要介绍了搜索和删除多行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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
原文链接:https://www.f2er.com/bash/389774.html

猜你在找的Bash相关文章