1

У меня есть файл xmlTV, который выглядит следующим образом:

<channel id="10125.dvb.guide" <!-- number="62" type="0x1" flags="0xf" bouquet="4097" region="4a" sid="10125" -->>
<display-name>ITV +1</display-name>

Я хочу отредактировать его так, чтобы я мог автоматически извлекать информацию из него для импорта в MySQL.

update channel set channum="62" where callsign="ITV +1";
update channel set xmltvid="10125.dvb.guide" where callsign="ITV +1";

Я пытался:

sed 's/<!-- number=/update channel set channum=/g'
sed 's/<channel id=/update update channel set xmltvid=/g'

но это действительно пролетает прямо над моей головой, любые советы или подсказки были бы великолепны.

1 ответ1

0

Попробуйте этот скрипт:

#!/usr/bin/perl
use v5.14;
use warnings;

until(eof()) {
    my ($id, $chan) = <> =~ /id="([^"]*)".*number="(\d+)"/;
    my ($sign) = <> =~ />(.*)</;
    <>; # Skip </channel>

    say qq(UPDATE channel SET channum="$chan",xmltvid="$id" WHERE callsign="$sign");
}

Вы также можете использовать DBI для редактирования базы данных непосредственно из скрипта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .