如何使用 sed(或类似工具)编辑 xmlTV 文件?

如何使用 sed(或类似工具)编辑 xmlTV 文件?

我有一个如下所示的 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

尝试这个脚本:

#!/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 直接从脚本编辑数据库。

相关内容