需要输入即文件名的perl脚本,我需要找到与该模式匹配的所有文件。
Example: given input as 2019052300 2019052323 (YYYYMMDDHH)
在这里,我需要将所有以2019052300命名的文件提取到2019052323。例如2019052300,2019052301 .. 2019052323。
谢谢!
答案 0 :(得分:2)
生成您感兴趣的时间戳列表非常容易。在这段代码中,我使用了Time::Piece,它自2007年的5.10版本以来就是标准Perl发行版的一部分。>
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Time::Piece;
use Time::Seconds;
@ARGV == 2 or die "Usage: $0 <start> <end>\n";
my ($start_str, $end_str) = @ARGV;
my $format = '%Y%m%d%H';
my $start = Time::Piece->strptime($start_str, $format);
my $end = Time::Piece->strptime($end_str, $format);
my $curr = $start;
while ($curr <= $end) {
say $curr->strftime($format);
$curr += ONE_HOUR;
}
在夏令时开始或结束的一段时间内,这可能会给您带来问题。留给读者练习的固定方法:-)