[Moscow.pm] генирирование регулярного выражения, дата старше заданной

Nikolay Mishin mi на ya.ru
Пт Окт 14 09:02:33 PDT 2011


В итоге(рабочий вариант) получилось так

#!/usr/bin/env perl
use strict;
use warnings;

use utf8;
use Carp;
use lib qw(/home/mishin/perl/utils/TimeDate-1.20/lib);
use Date::Parse;
use English qw(-no_match_vars);

our $VERSION = '0.01';

my $start_date = str2time('02-Apr-2011');
my $end_date   = str2time('10-May-2011');

#my $input_time    = str2time($input_date);
my $RGX_DATE_FULL = qr{.*(\d{2}-\w{3}-\d{4}).*}smo;
my @input_data    = <DATA>;

my @res =
  grep { extract_time($_) >= $start_date and extract_time($_) <= $end_date }
  @input_data;

print @res;

sub extract_time {
    my ($search_str) = @_;
    $search_str =~ s/$RGX_DATE_FULL/$1/sm;
    return str2time($search_str);
}

__DATA__
N1089767N_7_SWOPT_03-Jul-2011_78919186.xml
N1089767N_7_SWOPT_25-Jun-2011_72745892.xml
N1089772L_9_SWOPT_03-Jul-2011_78979055.xml
N1089772L_9_SWOPT_01-Apr-2011_78979055.xml
N1089772L_9_SWOPT_02-Apr-2011_78979055.xml
N1089772L_9_SWOPT_22-Apr-2011_78979055.xml
N1089772L_9_SWOPT_30-Apr-2011_78979055.xml
N1089772L_9_SWOPT_20-Jul-2011_69380887.xml
N1089772L_9_SWOPT_29-Jun-2011_74754662.xml
message.110530033311A4259348AS26.A4259348AS_26_SWOPT_01-Jul-2011.xml
message.110530033311A4259348AS26.A4259348AS_26_SWOPT_31-May-2011.xml
A4259348AS_26_SWOPT_29-Jun-2011_74754662.xml
N1089772L_9_SWOPT_03-Feb-2011_78979055.xml
N1089772L_9_SWOPT_01-Mar-2011_78979055.xml
N1089772L_9_SWOPT_02-Jan-2011_78979055.xml
N1089772L_9_SWOPT_22-Feb-2011_78979055.xml


12.10.2011, 16:23, "Nikolay Mishin" <mi на ya.ru>:
> Да, так лучше
>
> https://gist.github.com/1281076
>
> , осталось только понять смогу ли я без root'овых прав использовать этот модуль на SunOS 5.10
>
> 12.10.2011, 15:52, "Jack of Shadows" <somerandomlogin на gmail.com>:
>
>>  Хм-м, а как насчёт взять Date::Parse, сконвертить дату в таймстамп?
>>
>>  2011/10/12 Nikolay Mishin <mi на ya.ru>:
>>>   Hi Moscow-pm,
>>>
>>>   Я тут сделал генерилку регулярного выражения, например, мне нужно было выводить все файлы старше(включая) 02-Apr-2011
>>>
>>>   https://gist.github.com/1280987
>>>
>>>   что скажете?
>>>
>>>   p.s. по дате файла искать не получиться, т.к. файлы могли сформироваться позднее, имя- это просто метка данных, которые в них лежат
>>>   pp.s. ideone не удалось заюзать https://ideone.com/9S0DX т.к. у них нет модулей Regexp::Assemble,Smart::Comments и т.д.
>>>   --
>>>   Nikolay Mishin
>>>   --
>>>   Moscow.pm mailing list
>>>   moscow-pm на pm.org | http://moscow.pm.org
>>  --
>>  Moscow.pm mailing list
>>  moscow-pm на pm.org | http://moscow.pm.org
>
> --
> Nikolay Mishin
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

--
Nikolay Mishin


Подробная информация о списке рассылки Moscow-pm