Как удалить текст в файле, кроме слов, которые мне нужны, с помощью VIM - PullRequest
4 голосов
/ 06 августа 2010

У меня есть такой XML-файл:

<text>
<A>12</A>
<B>13</B>
</text>

<text>
<A>14</A>
<B>15</B>
</text>

Теперь я хочу удалить весь текст в файле, кроме слов в теге A. То есть файл должен содержать:

12
14

Как мне этого добиться?

Ответы [ 3 ]

2 голосов
/ 06 августа 2010

Вы можете сделать это двумя командами (если хотите, на одной строке)

:g!/.*<A>[^<]*<\/A>.*/d
:%s/<A>\([^<]*\)<\/A>/\1/g

одна строка: (отдельные команды с вертикальной чертой |)

:g!/.*<A>[^<]*<\/A>.*/d | :%s/<A>\([^<]*\)<\/A>/\1/g

Это удалит пустые строки ...

0 голосов
/ 06 августа 2010
:%s/\_.\{-}<A>\([^<]*\)<\/A>\_.\{-}>$/\1\r/

Получает все, кроме заключительного / текстового тега одним махом :-) Прикольные вещи !!

0 голосов
/ 06 августа 2010
:%s/^.\{-}\(<A>\(.*\)<\/A>\)\?.*$/\2/g

Предполагается, что у вас тот же магический режим, что и у меня, конечно;) Он не удаляет пустые строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...