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>