Como edito um arquivo xmlTV usando sed (ou uma ferramenta semelhante)?

1

Eu tenho um arquivo xmlTV que se parece com isso:

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

Eu quero editá-lo para que eu possa extrair automaticamente informações dele para importar para o MySQL.

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

Eu tentei:

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

mas isso realmente passa direto sobre minha cabeça, quaisquer dicas ou sugestões seriam ótimas.

    
por Saner2oo2 08.05.2015 / 10:53

1 resposta

0

Experimente este script:

#!/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");
}

Você também pode usar o DBI para editar o banco de dados diretamente do script.

    
por 08.05.2015 / 13:13