log file conversion (OT?)
Bart Silverstrim
bsilverstrim at athensasd.org
Wed Nov 9 18:43:54 GMT 2005
On Nov 9, 2005, at 1:03 PM, Giorgos Keramidas wrote:
> On 2005-11-09 12:36, Bart Silverstrim <bsilverstrim at 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(".", at 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?
More information about the freebsd-questions
mailing list