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

On 2005-11-09 12:36, Bart Silverstrim <[EMAIL PROTECTED]> 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?

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to