Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: sed и xml: как удалить текст между тегами ?  (Прочитано 2123 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kotnaton

  • Автор темы
  • Участник
  • *
  • Сообщений: 149
    • Просмотр профиля
К примеру такой фрагментик:
<trackList>
<track>
<title>Первый канал</title>
<album>Обо всем</album>
<annotation>Первый канал</annotation>
<location>udp://@239.64.64.253:1234</location>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:id>27</vlc:id>
</extension>
</track>
<track>
<title>100.5 - Best FM</title>
<album>Радио</album>
<annotation>100.5 - Best FM</annotation>
<location>/Best_FM.mp3</location>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:id>1005109</vlc:id>
</extension>
</track>
Как сделать так средствами sed, чтобы все с тегами <track> и </track> в случае телеканала (то есть поля в которых есть подмножество адресов 239.64.64.0/24) из xml удалило,а в случае со словом "радио" (c полем <album>Радио</album>) оставило ?
Проверяйте скачанные iso-шники командой: md5sum -c MD5SUMS.txt

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: sed и xml: как удалить текст между тегами ?
« Ответ #1 : 09 Сентября 2014, 02:06:35 »
Код: (bash) [Выделить]
sed '/<track>/{ :s ; N ; /<\/track>/! bs ; /239\.64\.64/d } '
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

 

Страница сгенерирована за 0.02 секунд. Запросов: 23.