Извлечь строку внутри "> и </ pattern - PullRequest
2 голосов
/ 17 апреля 2009

Я пытаюсь извлечь строку из файла, имеющего следующий шаблон в строке

>------ </

Представление ----- может быть любой строкой переменной длины. Начальный шаблон в строке > и конечный шаблон </.

Можно ли использовать регулярное выражение VIM для поиска в командной строке? и если да, то можно ли это напечатать?

Или придется написать скрипт?

Я новый пользователь VIM

Ответы [ 2 ]

6 голосов
/ 17 апреля 2009

Попробуйте выполнить следующий поиск в vim:

/">\(.*\)<\/

Это должно соответствовать любой строке с этим шаблоном. Он также сохранит любой текст между начальными и конечными маркерами в \1, который вы можете использовать, если хотите выполнять поиск и замену в vim. Например:

:%s/">\(.*\)<\//Log message: \1/

Если вы хотите использовать grep в командной строке для поиска этой строки, вы можете использовать:

$ egrep "\">.*<\/" foo.txt

Это выведет только совпадающие строки из foo.txt. Если вы хотите отправить их в новый файл, попробуйте:

$ egrep "\">.*<\/" foo.txt > new.txt
1 голос
/ 17 апреля 2009

Попробуйте это

%:s/.*>\(.*\)<\/.*/\1/    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...