首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Perl的文件名通配,您如何了

2012-08-13 
Perl的文件名通配,您怎么了上问题:我想匹配当前文件夹下昨天的文件;所以我写了如下的语句#!/usr/bin/perl$

Perl的文件名通配,您怎么了
上问题:
我想匹配当前文件夹下昨天的文件;
所以我写了如下的语句
#!/usr/bin/perl
$date =`date -d yesterday +%Y%m%d`;
$test = "log.$date";
@files =<$test*>;
foreach (@files) {
 print "$_\n";
}
这样输出的 结果是整个文件夹下的文件。。。而并没有过滤出以Log开头的 日期的 文件——我的日期可能具体到当天的时间,所以我想用这个通配 匹配出当天的所有文件。不知道哪儿出错了。
但是如果改成具体的日期,如:
#!/usr/bin/perl
$date =`date -d yesterday +%Y%m%d`;
$test = "log.20120718";
@files =<$test*>;
foreach (@files) {
 print "$_\n";
}
就可以匹配出当天的所有文件了,请问到底是怎么回事呢?我的通配符用的不对吗?还是说 无法匹配出昨天的文件——不用具体写死了时间。

[解决办法]

Perl code
$date = `date -d yesterday +%Y%m%d`;chomp $date;$test = "log.$date";@files = <${test}*>;foreach (@files) {    print "$_\n";} 

热点排行