LINUX.ORG.RU

bash удалить xml теги


0

1

есть файл:
«<?xml version=„1.0“ encoding=„utf-8“?>
<response>
<lyrics>
<lyrics_id>7502627</lyrics_id>
<text> ТУТ ТЕКСТ КОТОРЫЙ НУЖНО ПОЛУЧИТЬ
</lyrics>
</response> »

нужно получить чистый текст без XML-мусора.
sed 's/<.*>//g' или grep -E '[аяaz0-9]' -i не подходит - остается много пустых строчек, которые даже не \n..

★★★★★

много пустых строчек, которые даже не \n..

И что, ты не знаешь как убрать эти оставшиеся строки?

adriano32 ★★★
()

XMLStarlet, 4xpath, xpath, на выбор.

encyrtid ★★★★★
()
$ echo "<?xml version="1.0" encoding="utf-8"?>
<response>
<lyrics>
<lyrics_id>7502627</lyrics_id>
<text> ТУТ ТЕКСТ КОТОРЫЙ НУЖНО ПОЛУЧИТЬ 
</lyrics>
</response> " |sed -r 's/<[^>]+>//g;/^[[:space:]]*$/d' 
7502627
 ТУТ ТЕКСТ КОТОРЫЙ НУЖНО ПОЛУЧИТЬ
uzbl
()
Ответ на: комментарий от snoopcat

так, всё , сам разобрался. спасибо всем, работает вроде

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat
$ echo "<?xml version="1.0" encoding="utf-8"?>
<response>
<lyrics>
<lyrics_id>7502627</lyrics_id>
<text> ТУТ ТЕКСТ КОТОРЫЙ НУЖНО ПОЛУЧИТЬ 
</lyrics>
</response> " |sed -rn '/<text>(.+)/{s//\1/;p}'
 ТУТ ТЕКСТ КОТОРЫЙ НУЖНО ПОЛУЧИТЬ

?

uzbl
()

всем спасибо еще раз

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat

а, ты про <xmltag>text</xmltag>
нет, такого не может быть :)

snoopcat ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.