http://www.perlmonks.org?node_id=1041317


in reply to Re^2: Extracting time from a log
in thread Extracting time from a log

but even changing 10.0 to 1 or 0 result in no output

I beg to differ:

$ echo " 11 SessionOpen c 123.234.56.78 63618 123.234.56.89:80 11 RxURL c /example.php 11 RxHeader c Host: 123.234.56.89 11 RxHeader c User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; r +v:22.0) Gecko/20100101 Firefox/22.0 11 RxHeader c Accept-Language: en-US,en;q=0.5 11 RxHeader c Accept-Encoding: gzip, deflate 11 ReqEnd c 1832330560 1372436083.710740089 1372436083.711302 +519 0.000174284 0.000352383 0.000210047" | perl -ne 'BEGIN { $/="";} +print if (/ReqEnd(?:[\sc]+)\d+\s\d+\.\d+\s+\d+\.\d+\s+\d+\.\d+\s+(\d+ +\.\d+)/ and $1 > 0)'

Output:

11 SessionOpen c 123.234.56.78 63618 123.234.56.89:80 11 RxURL c /example.php 11 RxHeader c Host: 123.234.56.89 11 RxHeader c User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; r +v:22.0) Gecko/20100101 Firefox/22.0 11 RxHeader c Accept-Language: en-US,en;q=0.5 11 RxHeader c Accept-Encoding: gzip, deflate 11 ReqEnd c 1832330560 1372436083.710740089 1372436083.711302 +519 0.000174284 0.000352383 0.000210047

I changed the 10.0 to 0 and it outputted successfully. Perhaps you are overlooking something?

Replies are listed 'Best First'.
Re^4: Extracting time from a log
by Azur (Initiate) on Jul 01, 2013 at 11:14 UTC
    Yes, clearly I must be, if you get output from that line, because I do not.

    I do get output if I enter...

    varnishlog -o -i Backend,RxURL,ReqEnd,RxHeader

    ...and when I enter...

    ls | perl -ne 'BEGIN { $/= "";} print'

    ...but not when I enter...

     varnishlog -o -i Backend,RxURL,ReqEnd,RxHeader | perl -ne 'BEGIN { $/= "";} print'

    So both parts of the command work individually, but not together!

    Any suggestions as to what I'm missing would be most welcome.

    EDIT: Solved it by redirecting the output to a textfile, then grepping the textfile. Still interested in finding out why the Perl command didn't work.