Date: Fri, 4 Jan 2002 15:27:51 -0500 From: parv <parv_@yahoo.com> To: f-q <freebsd-questions@freebsd.org> Subject: any way to make efficient the awk script Message-ID: <20020104202751.GA82783@moo.holy.cow>
next in thread | raw e-mail | index | archive | help
hi, below is my first awk script. is there any way to make it any more efficient? in particular, i want to know if printf() & print statements could be combined. goal is to shorten each line of apache http log for quick browsing/sorting. - begin --- #! /bin/sh logs="/path/to/log/file(s)" # given a line this (from apache log)... # #------------------------------------------------------------------------------------------ # 1 2 3 4 5 6 7 8 9 10 11 12..$ #------------------------------------------------------------------------------------------ #127.0.0.1 - - [30/Dec/2001:14:43:28 -0500] "GET /file/path HTTP/1.0" 200 57853 "-" "User ... Agent" # # ...awk gives.. # # w/o seconds (implemented) #127.0.0.1 2001.12.30 14.43 -0500 /file/path (200) - # # w/ seconds (not implemented) #127.0.0.1 2001.12.30 14.43.28 -0500 /file/path (200) - # awk ' BEGIN \ { # create month_num array to map month names to numbers month_name_list = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec" split(month_name_list, month_names, ",") for (i in month_names) { month = month_names[i] month_num[month] = sprintf("%0.2d", i) } } ! /w3c_validator.*libwww-perl|baa.*sheep|moo|\.css|robots\.txt|GET \/ HTTP/ \ { # create date array containing: day, month(name), year, hour, minute, second split(substr($4,2,20), date, "/|:") printf("%-18s",$1) # left justify ip4 address w/ 3 extra spaces at the end # year . month number . day hour . minute timezone offset # | | | | | | print date[3]"."month_num[date[2]]"."date[1], date[4]"."date[5], substr($5,1,length($5)-1), \ " ", $7, " ("$9") ", substr($11,2,length($11)-2) # | | | # file (http code) referrer }' $logs - end --- -- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020104202751.GA82783>