解压缩log.gz文件

时间:2017-03-01 11:25:30

标签: perl gunzip

我想从昨天解压缩多个log.gz文件。

守则:

use strict;
use warnings;
use 5.010;
use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ;
use Time::Local;

#yesterday
my ($sec, $min, $hour, $mday, $mon, $year) = (gmtime())[0..5];

my $yesterday_midday=timelocal($sec,$min,$hour,$mday,$mon,$year) - 24*60*60;

($sec, $min, $hour, $mday, $mon, $year) = localtime($yesterday_midday);


my $path = sprintf "..\\..\\history\\%d\\%02d\\%02d\\*.log.gz",$year+1900, $mon+1, $mday;
print("PATH: $path\n");

gunzip '<path>' => '<#1.log>' #unzip all .log.gz files
        or die "gunzip failed: $GunzipError\n";

错误:

Max wild is #0, you tried #1 at D:/Perl64/lib/IO/Uncompress/Base.pm line 545

1 个答案:

答案 0 :(得分:-1)

您需要展开标量$path在您的情况下,您告诉gunzip将名为path的文件解压缩到野外梳理输出中。该错误告诉您字符串“path”不包含任何通配符,但您指的是匹配的通配符(由于“path”字符串中没有通配符而不存在)

试试这个:

gunzip "<$path>" => '<#1.log>' #unzip all .log.gz files
        or die "gunzip failed: $GunzipError\n";
相关问题