Решение с использованием инструмента xmstarlet :
xmlstarlet sel -t -v "/p/text()[2]" -n file | sed 's/.*"\(.*\)"/\1/'
Вывод:
Massive demographic change has political consequences.
sel
option
sel (or select) - Выбрать данные или запросить XML документ (ы) (XPATH и т. д.)
-t
--template options
-v
option
-v или --value-of - распечатать значение выражения XPATH
/ p / text () [2]
- выражение XPath, выбирает второй текстовый узел абзаца (первый текстовый узел - .
)
sed 's /.* "\ ( . * \) "/ \ 1 / '
- для извлечения сообщения между двойными кавычками