Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Nov 2005 13:44:44 -0500
From:      Bart Silverstrim <bsilverstrim@athensasd.org>
To:        Giorgos Keramidas <keramida@ceid.upatras.gr>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: log file conversion (OT?)
Message-ID:  <c3593d564c07405fc09bd0e370319c1b@athensasd.org>
In-Reply-To: <20051109180353.GA10584@flame.pc>
References:  <06fe145ebc265841b4c499f5dc1e72ab@athensasd.org> <20051109180353.GA10584@flame.pc>

next in thread | previous in thread | raw e-mail | index | archive | help

On Nov 9, 2005, at 1:03 PM, Giorgos Keramidas wrote:

> On 2005-11-09 12:36, Bart Silverstrim <bsilverstrim@athensasd.org> 
> wrote:
>> I have Squid running on a FreeBSD system and the log file (access.log)
>> has lines like
>>
>> 1131556815.537    101 172.16.2.153 TCP_HIT/200 35674 GET
>> http://www.urprize2.com/adv77/images/header_08_23_05.gif - NONE/-
>> image/gif
>> 1131556815.584     47 172.16.2.153 TCP_HIT/200 1828 GET
>> http://www.urprize2.com/adv77/images/timer.swf - NONE/-
>> application/x-shockwave-flash
>>
>> in it.  Is there a simple way or a one- or two-liner script
>> that can take the epoch time in the first column and replace it
>> with the actual time/date stamp in human-readable format?
>
> Yes.  Perl should work fine here.
>
>     $ echo '1131556815.537    101 172.16.2.153 TCP_HIT/200 35674 GET' 
> | \
>       perl -MPOSIX=strftime \
>       -pe 'chomp; @x=split /\./; \
>            $ts = strftime "%Y-%m-%d %H:%M:%S", (localtime($x[0])); \
>            $_=$ts.".".join(".",@x[1,$#x])."\n";'
>     2005-11-09 09:20:15.537    101 172.153 TCP_HIT/200 35674 GET

Is there a way to get it to take in each line of the logfile and output 
it to a new file?  It wouldn't be as easy as a "cat access.log | (perl 
code here) >> newfile.log" would it?




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c3593d564c07405fc09bd0e370319c1b>