死活去不掉空行的pl。谁试试。
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
死活去不掉空行的pl。谁试试。
#!/usr/bin/perl -w
$home=$ENV{HOME};
#~/.config/rox.sourceforge.net/ROX-Filer/Bookmarks.xml
#<bookmark title="/home/exp/媒体/●电影">/home/exp/媒体/●电影</bookmark>
print "=====rox书签\n";
if (open(BM, "$home/.config/rox.sourceforge.net/ROX-Filer/Bookmarks.xml")) {
while ($line = <BM>) {
if ($line =~ /title/){
$line =~ s/<[^>]*>/\n/g;
$line =~ s/&#x([[:xdigit:]]+);/chr(hex($1))/ge;
$line =~ s/^$home/~/mg;
# $line =~ s/^\s*//mg;
# $line =~ s/\s*$//mg;
# $line =~ s/[\x0A]+/\n/mg;
$line =~ s/^\s*$//mg;
print $line;
}
if (eof) {close (BM);last;}
}
}
$home=$ENV{HOME};
#~/.config/rox.sourceforge.net/ROX-Filer/Bookmarks.xml
#<bookmark title="/home/exp/媒体/●电影">/home/exp/媒体/●电影</bookmark>
print "=====rox书签\n";
if (open(BM, "$home/.config/rox.sourceforge.net/ROX-Filer/Bookmarks.xml")) {
while ($line = <BM>) {
if ($line =~ /title/){
$line =~ s/<[^>]*>/\n/g;
$line =~ s/&#x([[:xdigit:]]+);/chr(hex($1))/ge;
$line =~ s/^$home/~/mg;
# $line =~ s/^\s*//mg;
# $line =~ s/\s*$//mg;
# $line =~ s/[\x0A]+/\n/mg;
$line =~ s/^\s*$//mg;
print $line;
}
if (eof) {close (BM);last;}
}
}
● 鸣学
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
☎ cat ~/.config/rox.sourceforge.net/ROX-Filer/Bookmarks.xml
<?xml version="1.0"?>
<bookmarks>
<bookmark title="/home/exp/媒体/●电影">/home/exp/媒体/●电影</bookmark>
<bookmark title="/home/exp/媒体/●音乐">/home/exp/媒体/●音乐</bookmark>
<bookmark title="/home/exp/下载">/home/exp/下载</bookmark>
<bookmark title="/home/media">/home/media</bookmark>
<bookmark title="/home/exp/应用/脚本">/home/exp/应用/脚本</bookmark>
<bookmark title="/home/exp/.fvwm">/home/exp/.fvwm</bookmark>
<bookmark title="/media">/media</bookmark>
<bookmark title="/home/exp/文档/设计资料/瑞萨">/home/exp/文档/设计资料/瑞萨</bookmark>
<bookmark title="/home/exp/project/easy-account">/home/exp/project/easy-account</bookmark>
<bookmark title="/home/exp/下载/torrent-files">/home/exp/下载/torrent-files</bookmark>
<bookmark title="/home/media/●动画">/home/media/●动画</bookmark><bookmark title="/home/exp/媒体/房屋装饰图片">/home/exp/媒体/房屋装饰图片</bookmark><bookmark title="/home/exp/媒体/●图标">/home/exp/媒体/●图标</bookmark><bookmark title="/usr/local/bin">/usr/local/bin</bookmark><bookmark title="/home/exp/test test">/home/exp/test test</bookmark></bookmarks>
<?xml version="1.0"?>
<bookmarks>
<bookmark title="/home/exp/媒体/●电影">/home/exp/媒体/●电影</bookmark>
<bookmark title="/home/exp/媒体/●音乐">/home/exp/媒体/●音乐</bookmark>
<bookmark title="/home/exp/下载">/home/exp/下载</bookmark>
<bookmark title="/home/media">/home/media</bookmark>
<bookmark title="/home/exp/应用/脚本">/home/exp/应用/脚本</bookmark>
<bookmark title="/home/exp/.fvwm">/home/exp/.fvwm</bookmark>
<bookmark title="/media">/media</bookmark>
<bookmark title="/home/exp/文档/设计资料/瑞萨">/home/exp/文档/设计资料/瑞萨</bookmark>
<bookmark title="/home/exp/project/easy-account">/home/exp/project/easy-account</bookmark>
<bookmark title="/home/exp/下载/torrent-files">/home/exp/下载/torrent-files</bookmark>
<bookmark title="/home/media/●动画">/home/media/●动画</bookmark><bookmark title="/home/exp/媒体/房屋装饰图片">/home/exp/媒体/房屋装饰图片</bookmark><bookmark title="/home/exp/媒体/●图标">/home/exp/媒体/●图标</bookmark><bookmark title="/usr/local/bin">/usr/local/bin</bookmark><bookmark title="/home/exp/test test">/home/exp/test test</bookmark></bookmarks>
● 鸣学
- RegentW
- 帖子: 1486
- 注册时间: 2007-02-27 21:47
- 来自: NN
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- RegentW
- 帖子: 1486
- 注册时间: 2007-02-27 21:47
- 来自: NN
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- RegentW
- 帖子: 1486
- 注册时间: 2007-02-27 21:47
- 来自: NN
这个怎样
代码: 全选
#!/usr/bin/perl -w
$home=$ENV{HOME};
#~/.config/rox.sourceforge.net/ROX-Filer/Bookmarks.xml
#<bookmark title="/home/exp/媒体/●电影">/home/exp/媒体/●电影</bookmark>
print "=====rox书签\n";
if (open(BM, "$home/.config/rox.sourceforge.net/ROX-Filer/Bookmarks.xml")) {
local $/=undef;
$line = <BM>;
$line =~ s/<[^>]*>/\n/g;
$line =~ s/&#x([[:xdigit:]]+);/chr(hex($1))/ge;
$line =~ s/^\s*$//mg;
$line =~ s/\n+/\n/mg;
print $line;
}
Core i5, 512G + SSD 20G, DDRIII 8G
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- RegentW
- 帖子: 1486
- 注册时间: 2007-02-27 21:47
- 来自: NN
$/ - The input record separator, newline by default.
是可以这样 $line = <BM>; 读入了全部?那不是可以@line读入了。这样全部一起处理的,正常多了。
意思是Perl遇到了>255的字符,可以在脚本中加入一行print行,老出这提示。你知道为什么吗
Wide character in print at t.pl line 15, <BM> chunk 1.
代码: 全选
binmode STDOUT, ':utf8';
Core i5, 512G + SSD 20G, DDRIII 8G
- RegentW
- 帖子: 1486
- 注册时间: 2007-02-27 21:47
- 来自: NN
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- RegentW
- 帖子: 1486
- 注册时间: 2007-02-27 21:47
- 来自: NN
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙