正则表达式 – 使用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?的回答感兴趣 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- postgresql查询某时间区间的所有日期
- Electron 菜鸟教程 Electron入门指南简介介绍篇
- ruby-on-rails – 如何添加特定于行动的资产管道项目?
- 如何在C#中使用Console应用程序设置鼠标光标的位置?
- ORACLE使用数据泵定时执行备份与问题总结
- macos – NSWindow返回nil(NSApplication)
- Compiling and linking error when using NDK r10 to build
- flash中,getChildByName的效率测试及原理推测
- XML Parser Robustness Testing
- reactjs – React Controlled与Uncontrolled输入