in reply to Re^2: grep lines from log for last 10 mints
in thread grep lines from log for last 10 mints

I think I figured out how to a2p
#!perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; # this emulates #! processing on NIH machines. # (remove #! line above if indigestible) eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_0-9]+=)(.*)/ && shift; # process any FOO=bar switches while (<>) { @Fld = split(' ', $_, -1); $tm = $Fld[(1)-1] . ' ' . $Fld[(2)-1] . ' ' . $Fld[(3)-1]; ; print $_ if $start lt $tm && $tm lt $end; #??? #??? } Please check my work on the 2 lines I've marked with "#???". The operation I've selected may be wrong for the operand types.

Massaging that a little and adding start/end

#!/usr/bin/perl -- use strict; use warnings; use Data::Dump; my $start = qx{date +'%b %e %T'}; my $end = qx{date -d '10 mins ago' +'%b %e %T'}; dd $start, $end; while (<>) { my @Fld = split(' ', $_, -1); my $tm = $Fld[(1)-1] . ' ' . $Fld[(2)-1] . ' ' . $Fld[(3)-1]; print $_ if $start lt $tm and $tm lt $end; }
Use as  ./tminus10 path/to/logfile

Replies are listed 'Best First'.
Re^4: grep lines from log for last 10 mints
by bimleshsharma (Beadle) on Aug 06, 2012 at 11:14 UTC
    i tried to run below code by passing path of log but getting below error continuous for line "my $tm = $Fld(1)-1 . ' ' . $Fld(2)-1 . ' ' . $Fld(3)-1;"
    #!/usr/bin/perl -- use strict; use warnings; use Data::Dump; my $start = qx{date +'%b %e %T'}; my $end = qx{date -d '10 mins ago' +'%b %e %T'}; dd $start, $end; while (<>) { my @Fld = split(' ', $_, -1); my $tm = $Fld[(1)-1] . ' ' . $Fld[(2)-1] . ' ' . $Fld[(3)-1]; print $_ if $start lt $tm and $tm lt $end; }
    Use of uninitialized value in concatenation (.) or string at ./test.pl line 11, <> line 144807. Use of uninitialized value in concatenation (.) or string at ./test.pl line 11, <> line 144807.

      So?

      FWIW, its a warning, if you don't want warnings, turn them off