Я могу использовать символ “/” в awk

Я работаю с некоторым .xml, и я должен извлечь часть их. Я должен извлечь блок между строкой, где появляются >21120352</PMID> и строка, где появляется </PubmedArticle>

Но синтаксис awk использует "/", таким образом, он дает мне ошибку. Я также использовал эквивалентный U+002F, но решения возвращают больше, чем я хочу.

К моменту у меня есть это решение:

awk '/>21120352</,/PubmedArticle>/' file.xml

Также я использовал подстановочный знак:

awk '/>21120352<.PMID>/,/<.PubmedArticle>/' file.xml

Мой вопрос состоит в том, если возможно искать использование </PMID> и </PubmedArticle>

0
задан 2 August 2017 в 03:56

2 ответа

Необходимо выйти / с обратной косой чертой: \/.

awk '/>21120352<\/PMID>/,/<\/PubmedArticle>/' file.xml

Как альтернатива awk, я предлагаю взглянуть на XMLStarlets xml sel функция, которая лучше в парсинге XML-файлов.

1
ответ дан 2 November 2019 в 20:37

Как альтернатива выходу из шаблона с помощью обратной косой черты \ можно также использовать переменную для определения шаблона:

awk '$0~pattern' pattern=">21120352</,/PubmedArticle>/" filename

Больше обходных решений.

0
ответ дан 2 November 2019 в 20:37

Другие вопросы по тегам:

Похожие вопросы: