Hi,
> Thank you all for the reply it is working for me .
>
> 1) for 02/23/18 01:10:33 ==> I am using the following regex
> \d\d/\d\d/\d\d\s[012][0-9]:[0-5][0-9]:[0-5][0-9]
> 2) Feb 23 01:10:28 2018
> ====> I am using the following regex :
> ([A-Z][a-z]{2}\s)([0-9]{2}\s[0-2][0-9](:[0-5][0-9]){2}\s[0-9]{4})
>
> Both are working as expected I would like to know if these are good regex or
> it can be better , please suggest .
The regex seems to be working (I cannot recommend too much the
excellent tool TheRegex Coach).
But with the regex, you have only done half of the work: you still need
to be able to compare the date & time.
You should really go the route suggested earlier and use a Perl module
made for date manipulation, it will seve you hours of debugging; and you
will be able to convert any date into a timestamp (epoch) and simply
compare timestamps.
Regards,
Olivier
> Thanks,
>
> On Tue, Oct 23, 2018 at 12:14 PM Asad <[email protected]> wrote:
>
> Hi All ,
>
> first hurdle is how do I extract this Feb 23 01:10:28 2018 from file1 which
> regex can I use ?
>
> convert it into epoch
>
> then
>
> regex for 02/23/18 01:10:33 is required ?
>
> convert into epoch
>
> So if you can suggest the correct regex for both timestamps.
>
> Thanks,
>
> On Tue, Oct 23, 2018 at 12:11 PM Илья Рассадин <[email protected]> wrote:
>
> use Time::Piece;
>
> my $t1 = Time::Piece->strptime('Feb 23 01:10:28 2018', '%b %d %H:%M:%S %Y');
>
> my $t2 = Time::Piece->strptime('02/23/18 01:10:33', '%m/%d/%y %H:%M:%S');
>
> if ($t1 > $t2) { ... }
>
> On 23/10/2018 09:17, Asad wrote:
>
> Hi All ,
>
> first hurdle is how do I extract this Feb 23 01:10:28 2018 from file1 which
> regex can
> I use ?
>
> convert it into epoch
>
> then
>
> regex for 02/23/18 01:10:33 is required ?
>
> convert into epoch
>
> So if you can suggest the correct regex for both timestamps.
>
> Thanks,
>
> On Tue, Oct 23, 2018 at 11:21 AM Asad <[email protected]> wrote:
>
> Thanks, I will do that. It was for perl .
>
> On Tue, Oct 23, 2018 at 10:42 AM Jim Gibson <[email protected]>
> wrote:
>
> On Oct 22, 2018, at 9:12 PM, Asad <[email protected]>
> wrote:
> >
> > file1 :
> > Patching tool version 12.1.0.2.0 Production on Fri Feb 23 01:10:28 2018
> >
> > Bootstrapping registry and package to current versions...done
> > statement ERR-2001: table is corrupt check for cause
> >
> > could not determine the current status.
> >
> > file2 :
> >
> > LOG file opened at 02/03/18 01:11:05
> >
> > DUP-05004: statement1
> > DUP-05007: statement2
> >
> >
> > LOG file opened at 02/03/18 01:11:14
> >
> > DUP-05004: statement1
> >
> > DUP-05007: statement2
> >
> >
> > LOG file opened at 02/23/18 01:10:33
> >
> > DUP-05004: statement1
> >
> > DUP-05007: statement2
> >
> > I need to look for the ERR-2001 in file1 if it matches then go to file2 and
> print the message nearest to the timestamp found in file1 within two
> minutes of range .
> >
> > so in this case file1 : Fri Feb 23 01:10:28 2018
> > range file1 +2 mins :02/23/18 01:12:28
> > check in file 2 nearest to file1 and within range : 02/23/18 01:10:33
> >
> > how do i compare two timestamps in different format and within range
> ?
>
> You would first convert the two timestamps to a common format,
> preferably one that used a numerical value to express times. I know of
> two such: the Unix epoch time that uses an integer to represent the
> number of seconds since 1 Jan 1970 UTM and the Julian date that uses a
> floating-point number to represent the number of days since 1 Jan 4713
> BCE.
>
> Are you looking for a Perl solution or a Python one?
>
> For Perl, you should investigate time and date modules available on
> CPAN, such as Date::Manip or Date::Calc.
>
> --
> Asad Hasan
> +91 9582111698
>
> --
> Asad Hasan
> +91 9582111698
>
> --
> Asad Hasan
> +91 9582111698
--
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/