正则表达式 – 使用Vim将所有*非*匹配的字符串替换为另一个字符串

前端之家收集整理的这篇文章主要介绍了正则表达式 – 使用Vim将所有*非*匹配的字符串替换为另一个字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在解析日志文件时,我经常使用:g!/< string我想保留在日志> / d中以从日志中删除所有不包含感兴趣字符串的行.好吧,现在我想使用这个强大的命令来替换所有与空行不匹配的字符串.

除了我已经使用的命令之外,我几乎找不到关于g!的信息,格式为:g!/< match string> /< cmd>,其中cmd是“ex命令”,或者其中一个:vim中使用的命令.

所以我认为可以使用s命令来做到这一点,但我的理解在这方面是有限的.任何人都可以建议如何正确格式化命令?还是有其他工具更适合这项任务吗? (sed / awk?我真的没用过那些,但知道它们非常强大).

另一个选择就是在Python中编写实用程序并为其编写实用程序.

首先,您可以使用:v作为快捷方式:g!.我认为,词源来自标准grep命令的-v选项.

是的,你可以使用任何ex命令,包括:s.默认情况下,:s作用于单行;将它与:g(或:g!或:v)组合,您可以选择它作用的行.如果我理解正确的话

:v/<string I want to keep>/s/.*//

正是你想要的.你可能想跟进:能乐.

附录:我对这个简短答案的受欢迎程度感到有些惊讶.一个有趣的事情是文档(:help:g然后向下滚动一点)提到:%s / pat / PAT / g作为替代(“两个字符更短!”)到:g / pat / s // PAT /G.我认为这意味着:g / pat / s /曾经比以前更熟悉:%s / pat /.

无耻的插件:更多关于:g和:s,你可能也对我对why :%s/^$//g is not equal to :g/^$/d in vim?的回答感兴趣

原文链接:https://www.f2er.com/regex/356832.html

猜你在找的正则表达式相关文章