从 Windows 切换到 Linux 后,我留下了一个最喜欢的目录,其中包含子文件夹和.url
文件,每个文件包含几行文本,如下所示:
[DEFAULT]
BASEURL=http://www.example.com/faq.html
[InternetShortcut]
URL=http://www.example.com/faq.html
Modified=70E5E788C3B9C9010A
由于我的 Linux 系统上没有安装 Internet Explorer,因此无法将书签直接导入到我当前的 Firefox 浏览器中。
我想知道是否有一种快速方法可以从所有文件中提取 URL.url
以及文件名来生成一个.htm
可以导入到任何现代浏览器的文件。
答案1
你可以用一点 perl 来做到这一点:
#!/usr/bin/perl
use strict;
use warnings qw(all);
use HTML::Entities qw(encode_entities);
use Config::IniFiles;
use File::Spec;
foreach my $f (@ARGV) {
my $ini = Config::IniFiles->new( -file => $f );
my (undef, undef, $name) = File::Spec->splitpath($f);
$name =~ s/\.url$//; # / # this comment un-confuses the syntax highlighter
my $name_esc = encode_entities($name);
my $url_esc = encode_entities($ini->val('InternetShortcut', 'URL'));
print <<HTML
<a href="$url_esc">$name_esc</a>
HTML
}
那应该可以很好地处理一切。您可以使用grep
& cut
,但是您必须希望不需要转义,并且 ini 格式 .url 文件中的部分并不重要。