Я ищу XML-файлы, которые имеют определенные свойства. Например, файлы, содержащие следующий шаблон:
<param-value>
<name>Hosts</name>
<description>some description</description>
<value></value>
</param-value>
Для таких файлов я хотел бы проанализировать значение другого тега, например:
<param-value>
<name>Roles</name>
<description>some description</description>
<value>asdf</value>
</param-value>
И распечатайте имя файла вместе с «asdf». Какой самый простой способ сделать это из командной строки?
Одним из подходов, о котором я думал, было просто использовать grep с опцией -l для фильтрации соответствующих файлов, а затем использовать xargs grep для извлечения значения ролей. Однако grep плохо работает с многострочными регулярными выражениями. Я видел другой вопрос, который показал, что это можно сделать с помощью опций -Pzo, но мне не повезло заставить его работать в моем случае. Есть ли более простой подход?