Я работаю с некоторым .xml, и я должен извлечь часть их. Я должен извлечь блок между строкой, где появляются >21120352</PMID>
и строка, где появляется </PubmedArticle>
Но синтаксис awk использует "/", таким образом, он дает мне ошибку. Я также использовал эквивалентный U+002F, но решения возвращают больше, чем я хочу.
К моменту у меня есть это решение:
awk '/>21120352</,/PubmedArticle>/' file.xml
Также я использовал подстановочный знак:
awk '/>21120352<.PMID>/,/<.PubmedArticle>/' file.xml
Мой вопрос состоит в том, если возможно искать использование </PMID>
и </PubmedArticle>
Необходимо выйти /
с обратной косой чертой: \/
.
awk '/>21120352<\/PMID>/,/<\/PubmedArticle>/' file.xml
Как альтернатива awk, я предлагаю взглянуть на XMLStarlets xml sel
функция, которая лучше в парсинге XML-файлов.
Как альтернатива выходу из шаблона с помощью обратной косой черты \
можно также использовать переменную для определения шаблона:
awk '$0~pattern' pattern=">21120352</,/PubmedArticle>/" filename