我有一个这样的XML文件的话:如何删除一个文件中的文本只是我需要使用VIM
<text>
<A>12</A>
<B>13</B>
</text>
<text>
<A>14</A>
<B>15</B>
</text>
现在我想删除该文件中的所有文本,除了在标签A的话 也就是说,该文件应包含以下内容:
12
14
我怎样才能做到这一点?
我有一个这样的XML文件的话:如何删除一个文件中的文本只是我需要使用VIM
<text>
<A>12</A>
<B>13</B>
</text>
<text>
<A>14</A>
<B>15</B>
</text>
现在我想删除该文件中的所有文本,除了在标签A的话 也就是说,该文件应包含以下内容:
12
14
我怎样才能做到这一点?
:%s/^.\{-}\(<A>\(.*\)<\/A>\)\?.*$/\2/g
这假设你有和我一样的魔法模式;当然它不会删除空行。
你可以做到这一点在两个命令(在一行中,如果你喜欢)
:g!/.*<A>[^<]*<\/A>.*/d
:%s/<A>\([^<]*\)<\/A>/\1/g
一行:(用竖线|
独立的命令)
:g!/.*<A>[^<]*<\/A>.*/d | :%s/<A>\([^<]*\)<\/A>/\1/g
这将删除空白行...
:%s/\_.\{-}<A>\([^<]*\)<\/A>\_.\{-}>$/\1\r/
获取除最后/文本标签之外的所有内容扑倒在地:-)有趣的东西!