From owner-freebsd-questions@FreeBSD.ORG Wed Nov 9 18:03:58 2005 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6014616A41F for ; Wed, 9 Nov 2005 18:03:58 +0000 (GMT) (envelope-from keramida@ceid.upatras.gr) Received: from mailgate.bytemobile.com (mailgate.bytemobile.com [209.10.233.248]) by mx1.FreeBSD.org (Postfix) with ESMTP id 05DF543D45 for ; Wed, 9 Nov 2005 18:03:57 +0000 (GMT) (envelope-from keramida@ceid.upatras.gr) Date: Wed, 9 Nov 2005 10:03:53 -0800 From: Giorgos Keramidas To: Bart Silverstrim Message-ID: <20051109180353.GA10584@flame.pc> References: <06fe145ebc265841b4c499f5dc1e72ab@athensasd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <06fe145ebc265841b4c499f5dc1e72ab@athensasd.org> X-OriginalArrivalTime: 09 Nov 2005 18:03:56.0555 (UTC) FILETIME=[F3D33DB0:01C5E557] Cc: freebsd-questions@freebsd.org Subject: Re: log file conversion (OT?) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Nov 2005 18:03:58 -0000 On 2005-11-09 12:36, Bart Silverstrim 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 PS: Please, ignore the automatically forced 'footer' below, until I find a way to post messages without crap added automatically by the Exchange relay I'm forced to use these days. ----------------------------------------------------------------- This e-mail and any attachments may contain confidential and privileged information. If you are not the intended recipient, please notify the sender immediately by return e-mail, do not forward this email to any other person, delete this e-mail and destroy all copies. Any dissemination or use of this information by a person other than the intended recipient is unauthorized and may be illegal.