我有一个如下所示的 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 直接从脚本编辑数据库。