我有一个巨大的文件,其中包含如下条目:
<option value="201">Medical</option>
<option value="203">Finance</option>
<option value="205">Tax Return</option>
---------------------------
---------------------------
我正在尝试一次性删除此文件中的“选项”条目,以便该文件在编辑后如下所示:
Medical
Finance
Tax Return
----------
----------
如果我可以使用 vim 或 gedit 执行此操作,我在 google 中进行了搜索,但没有找到与此相关的任何内容(不知道使用什么关键字搜索)。请问有人有什么想法吗?
您可以在 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
安装round.vim,它提供了一个正常模式的映射
dst
,应该可以完成这项工作。为了将此应用于多行,请在可视模式下选择它们并调用
这会将正常模式命令
dst
应用于所选区域。如果要将其应用于整个文件(不仅仅是视觉选择),请使用以下命令