Chinaunix

标题: 用awk改squid日志一小问题 [打印本页]

作者: linusex007    时间: 2012-02-19 13:58
标题: 用awk改squid日志一小问题
本帖最后由 linusex007 于 2012-02-19 13:59 编辑

请教坛里各位一问题:
         我想将squid的日志用awk调整成类似apache格式的日志,squid的日志格式如下,无法修改,只能靠工具改写格式.
[root@vm 120212]# head -1 /data1/squid/var/logs/squid_access.log
haha.sina.com.cn 121.18.126.126 131 TCP_MISS:DIRECT [19/Feb/2012:11:58:01 +0800] "GET http://haha.com.cn/gossip/ HTTP/1.1" 200 37574 "http://haha.com.cn/gossip/slide_2_730_23569.html" - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" - -

改写成如下格式:
[root@vm 120212]# cat 120212.haha.com.cn.gz |head -1
221.198.97.42 - - [11/Feb/2012:23:58:04 +0800] 4 "GET /test/Smc.radio.mix_100630.js HTTP/1.1" 200 6985 "http://vipmail.com.cn/classic/index.php?fl" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" TCP_MEM_HIT:NONE

用awk已经调整正确,但实在没想出如何打印$2 $4 $6字段两边的“******”
[root@vm 120212]# awk -F "\"" '{split($1,a," ");print a[2],$NF,a[5],a[6],a[3],$2,$3,$4,$6,a[4]}' squid_access.log |head -1
121.18.126.126  - - [19/Feb/2012:11:58:01 +0800] 131 GET http://haha.com.cn/gossip/ HTTP/1.1  200 37574  http://haha.com.cn/gossip/slide_2_730_23569.html Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) TCP_MISS:DIRECT

哪位大侠帮忙看看,感激啊!
作者: askandstudy    时间: 2012-02-19 14:29
"\""$2"\""
类似这样不就行了
作者: linusex007    时间: 2012-02-19 14:36
回复 2# askandstudy


谢谢,刚才二了,写成带逗号分隔的搞半天
,"\"",$2,"\"",
作者: askandstudy    时间: 2012-02-19 14:40
本帖最后由 askandstudy 于 2012-02-19 14:41 编辑

大概这样子吧:
BEGIN {FS="\""}
{split($1,a," ");print a[2],$NF,a[5],a[6],a[3],"\""$2"\"",$3,"\""$4"\"","\""$6"\"",a[4]}

我在windows上试的

=====
哦,明白...
作者: 低头、真掩饰    时间: 2012-03-25 12:20





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2