本帖最后由 定海偶然 于 2015-7-9 09:46 编辑
今天继续分析我的50G大小的日志,附上一段日志,日志怎么跑上面去了?!{:4_114:}
跟以前的需求不一样了,现在要求提取出IMEI=××××× appPackname=×××××× (注意中间要空开)
好了,我们现在来分析一下日志,可以看到:
1.并不是每一条日志里面都有appPackname=××××××
2.appPackname=×××××× 都在IMEI=×××××的后面
那我们的awk该怎么写呢?方法有很多,这里呢,我就给出一个最简单的awk提取方法,不过后天的这个时候我,再给出!!你们可以先做做看,,{:4_91:}
- 117.136.25.234 01/Jul/2015:00:00:05 +0800 POST /androidplus/?c=plug3&a=request HTTP/1.1 Apache-HttpClient/Android
- 114.4.76.11 01/Jul/2015:00:00:05 +0800 POST /androidplus/?c=plug3&a=request HTTP/1.1 operator=51001&uid=1075074004&IMEI=354876061524968&IMSI=510018642917979&counrty=ID&language=in&sdcard=true&screenType=480*800*1.5*240&vercode=24&androidVersion=19&channelId=0000001&gameId=102&cpId=001&promoterId=001 Apache-HttpClient/Android
- 84.202.87.5 01/Jul/2015:00:00:05 +0800 POST /androidplus/?c=plug3&a=request HTTP/1.1 operator=24202&uid=2108201003&IMEI=353748061108699&IMSI=242025602637675&counrty=NO&language=nb&sdcard=true&screenType=1080*1920*3.0*480&vercode=36&androidVersion=21&androidId=54d3eaccb3dee711&appvercode=3&channelId=0000001&gameId=819&cpId=504&promoterId=011&netgame=false&accessTime=-3 Apache-HttpClient/Android
- 200.7.246.58 01/Jul/2015:00:00:05 +0800 - - -
- 183.224.2.95 01/Jul/2015:00:00:05 +0800 POST /androidplus/?c=plug3&a=request HTTP/1.1 Apache-HttpClient/Android
- 5.120.200.163 01/Jul/2015:00:00:05 +0800 POST /androidplus/?c=plug3&a=request HTTP/1.1 operator=43235&uid=158319825&IMEI=357471062013117&IMSI=432350541924917&counrty=IR&language=fa&sdcard=true&screenType=480*800*1.5*240&vercode=24&androidVersion=17&channelId=0000001&gameId=401&cpId=003&promoterId=001 Apache-HttpClient/Android
- 122.190.203.4 01/Jul/2015:00:00:05 +0800 POST /androidplus/?c=plug3&a=request HTTP/1.1 channelId=0001671&gameId=231&cpId=001&promoterId=011&netgame=false&uid=109672142&operator=46002&IMEI=354779065496078&IMSI=460023719238138&counrty=CN&language=zh&sdcard=true&androidVersion=19&vercode=112&uuid=ffffffff-b961-43d1-ffff-ffffd69fcb03&androidId=eac344c04b936bae&appvercode=1&appvername=1.0.0&appPackname=com.joym.datouadventure.youkutudou&macAddr=44%3A6D%3A6C%3A48%3A1A%3AF2&accounts=&accessTime=1435655557718 Apache-HttpClient/Android
跟以前的需求不一样了,现在要求提取出IMEI=××××× appPackname=×××××× (注意中间要空开)
好了,我们现在来分析一下日志,可以看到:
1.并不是每一条日志里面都有appPackname=××××××
2.appPackname=×××××× 都在IMEI=×××××的后面
那我们的awk该怎么写呢?方法有很多,这里呢,我就给出一个最简单的awk提取方法,不过后天的这个时候我,再给出!!你们可以先做做看,,{:4_91:}
0
本帖最后由 定海偶然 于 2015-7-9 11:52 编辑
#awk '{if($0!~/&appPackname=/){next};{sub(/.*IMEI=/,"IMEI=",$0);sub(/&macAddr=.*/,"",$0);print $0>>"456"}}' rizhi5000.log
#awk -F"&" '{printf "%-30s %30s\n",$1,$NF>>"789"}' 456
这2个awk能有啥办法,写成一个awk?
说好的,都做一下呢,你的答案呢?
泡沫。 发表于 2015-7-7 22:41
人来了 说好的答案呢
#awk '{if($0!~/&appPackname=/){next};{sub(/.*IMEI=/,"IMEI=",$0);sub(/&macAddr=.*/,"",$0);print $0>>"456"}}' rizhi5000.log
#awk -F"&" '{printf "%-30s %30s\n",$1,$NF>>"789"}' 456
这2个awk能有啥办法,写成一个awk?
说好的,都做一下呢,你的答案呢?
0
awk '{if($0~/&appPackname=/){sub(/.*IMEI=/,"IMEI=",$0);sub(/&macAddr=.*/,"",$0);sub(/&.*&/," ",$0);printf "%-30s %30s\n",$1,$NF>>"789"}}' rizhi5000.log
0
啊,还是你厉害啊 !,我咋就没想到这样写呢!
aqi 发表于 2015-7-9 16:59
awk '{if($0~/&appPackname=/){sub(/.*IMEI=/,"IMEI=",$0);sub(/&macAddr=.*/,"",$0);sub(/&.*&/," ",$0);p ...
啊,还是你厉害啊 !,我咋就没想到这样写呢!
编辑回复