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

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

发布时间:2020-12-14 06:23:44 所属栏目:百科 来源:网络整理
导读:在解析日志文件时,我经常使用:g!/ string我想保留在日志 / d中以从日志中删除所有不包含感兴趣字符串的行.好吧,现在我想使用这个强大的命令来替换所有与空行不匹配的字符串. 除了我已经使用的命令之外,我几乎找不到关于g!的信息,格式为:g!/ match strin
在解析日志文件时,我经常使用: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?的回答感兴趣

(编辑:李大同)

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

    推荐文章
      热点阅读