我有一个日志文件,在某些行上有字符串"ERROR".我想删除没有 ERROR的每一行,以便我可以看到需要修复的内容.我打算在vim中执行以下操作:
%S /!(错误)//
用空字符串替换非错误行.
我不相信标准的正则表达式可以做到这一点,但也许我错了......
使用该:g!
命令删除不匹配的每一行.
:g!/ERROR/d
在vim中,您可以对缓冲区中的文本运行任何过滤器命令.例如,
:%!grep ERROR
将仅使用与给定正则表达式匹配的行替换整个缓冲区.
这不仅仅是有用的grep
,例如,您可以使用缓冲区对行进行排序:%!sort
.或者,您可以使用V
命令标记块然后对任何范围的文本执行相同操作:!filter-command
(然后vim会自动填写'<,'>
以指示当前标记的块).