Как редактировать файл xmlTV с помощью sed (или аналогичного инструмента)?

у меня есть файл 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'

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

6
задан jaume
17.11.2022 7:52 Количество просмотров материала 3229
Распечатать страницу

1 ответ

попробовать этот скрипт:

#!/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 для редактирования базы данных непосредственно из скрипта.

0
отвечен user49740 2022-11-18 15:40

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх