我有一个巨大的文件,其中包含如下条目:
<option value="201">Medical</option>
<option value="203">Finance</option>
<option value="205">Tax Return</option>
---------------------------
---------------------------
Run Code Online (Sandbox Code Playgroud)
我试图一次性删除此文件中的“选项”条目,以便该文件在编辑后看起来像下面的那个:
Medical
Finance
Tax Return
----------
----------
Run Code Online (Sandbox Code Playgroud)
如果我可以使用 vim 或 gedit 执行此操作,我在 google 中搜索了此内容,但没有找到与此相关的任何内容(不知道用什么关键字搜索)。有人有什么想法吗?
bal*_*lki 11
您可以在 vim 中使用以下内容来执行您想要的操作。
:%s/<[^>]*>\([^<]*\).*/\1/g
这里我使用的s
命令,这是完整的语法,你可以通过键入来检查:help :s
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
% for range 表示整个文件,{pattern} 是正则表达式
{string} 表示必须替换的字符串。可以包含反向引用,即包含在大括号内的匹配模式的一部分。[flags] 是一些额外的选项。g
对于全局,即一行中的所有模式都需要替换。其他有用的标志是c
在更改之前要求确认。[count] 一定是次数,我猜。
所以这可以读作,搜索小于<后跟任意数字或不大于>字符然后>然后选择任意数量的不小于<字符到第一组\1然后任何数字或任何字符并将其替换为第一组 \1 全局。
检查此链接以了解有关 vim 特定正则表达式详细信息的更多信息http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml
安装around.vim,它提供了一个正常模式的映射dst
来完成这项工作。
为了将此应用于多行,请在可视模式中选择它们并调用
:'<,'>normal dst
Run Code Online (Sandbox Code Playgroud)
这会将普通模式命令dst
应用于所选区域。如果要将其应用于整个文件(不仅是视觉选择),请使用以下命令
:%normal dst
Run Code Online (Sandbox Code Playgroud)