免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2601 | 回复: 4
打印 上一主题 下一主题

[文本处理] 求文本提取 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-30 13:12 |只看该作者 |倒序浏览
本帖最后由 mvplove123 于 2015-12-30 13:19 编辑

[2015-11-01 00:00:17] service=search15&&costtime=68ms&&visitorIP=10.149.33.42&&reqid=_mobileengine_14463072172598241&&uvid=357197051093188&&searchWord=null&&rmiCosttime=4ms&&userAgent={Apache-HttpClient/UNAVAILABLE (java 1.4)}&&status=ok&&querystring={GET level=15&aroundEntrance=1&bound=1.2712153E7,2539761.3,1.2713403E7,2541469.5&range=scene:1.2712153E7,2539761.3,0.0,1.2713403E7,2539761.3,0.0,1.2713403E7,2541896.8,0.0,1.2712153E7,2541896.8,0.0,1.2712778E7,2540829.5,0.0&encrypt=1&loc=1.2709777E7,2548776.0&pageinfo=1,10&version=5.2&moblog=bsns:0,process:1,vn:7.0.0,dzid:0,mf:samsung,ps:10.18,op:454-00,m:357197051093188_CC:3A:61:8972_abebce79f791a4c9,ptype:sogou,net:13,ptoken:79b78a74add209d389dca27e93dc1353,nd:0,density:3.0,os:Android5.0.1,openid:,v:70000000,u:1403618309100873,sid:92,md:GT-I9505,d:357197051093188,pd:1,apn:mobile,loginid:,type:0,key:運頭街,t:2,reqId:fb7b2619-94ac-4161-a938-15874139ba91&choicely=1&what=id:1_998000012529169$運頭街&submittime=1}&hasResult&city=香港特别行政区
[2015-11-01 00:00:20] service=search3&&costtime=97ms&&visitorIP=10.144.99.90&&reqid=_mobileengine_14463072199168905&&uvid=862324019647875&&searchWord=715&&rmiCosttime=43ms&&userAgent={Apache-HttpClient/UNAVAILABLE (java 1.4)}&&status=ok&&querystring={GET level=18&aroundEntrance=1&bound=1.2705023E7,3542629.8,1.2705397E7,3542974.5&range=scene:1.2705023E7,3542974.5,0.0,1.2705397E7,3542974.5,0.0,1.2705397E7,3542629.8,0.0,1.2705023E7,3542629.8,0.0,1.2705105E7,3542699.8,0.0&encrypt=1&loc=1.2704877E7,3542435.3&pageinfo=1,10&version=5.2&moblog=sid:2,os:Android2.3.6,d:862324019647875,op:460-01,density:1.5,loginid:,m:862324019647875_B0:AA:36:27:8D:BD_57bceec94bf4c79d,net:wifi,vn:7.1.1,process:1,pd:1,v:70101000,u:1446306304749500,md:R807,bsns:874,nd:0,dzid:0,openid:,mf:unknown,ptoken:5314ec654c28ef51025b40cff617074a,apn:,ptype:sogou,ps:4.46,type:0,key:715,t:1,reqId:9a78784f-a888-42c1-b58d-1154a6d0e724&choicely=1&what=keyword:715&resultTypes=poi,busline&submittime=1}&hasResult&city=武汉
[2015-11-01 00:00:20] service=search3&&costtime=110ms&&visitorIP=10.144.90.35&&reqid=_mobileengine_14463072207356278&&uvid=868299029989943&&searchWord=门东历史街&&rmiCosttime=56ms&&userAgent={Apache-HttpClient/UNAVAILABLE (java 1.4)}&&status=ok&&querystring={GET level=12&aroundEntrance=1&bound=1.3218906E7,3737522.8,1.3229099E7,3754293.0&range=scene:1.3218906E7,3754293.0,0.0,1.3229099E7,3754293.0,0.0,1.3229099E7,3737522.8,0.0,1.3218906E7,3737522.8,0.0,1.3224003E7,3746261.8,0.0&encrypt=1&loc=1.3252874E7,3742979.8&pageinfo=1,10&version=5.2&moblog=bsns:831,process:1,vn:7.0.0,dzid:0,mf:vivo,ps:10.87,op:460-01,m:868299029989943_ec:df:3a:7b:4e:c4_96bc02717e25ab48,ptype:sogou,net:wifi,ptoken:041c0a37df19b4e44ffed310bc08faa2,nd:0,density:3.0,os:Android5.0,openid:23AE6D8ED6143C98B2E4DB73F6DBBF31,v:70000000,u:1443675655975364,sid:13,md:vivo X5Pro D,d:868299029989943,pd:1,apn:"ChinaUnicom",loginid:23AE6D8ED6143C98B2E4DB73F6DBBF31@qq.sohu.com,type:0,key:门东历史街,t:1,reqId:d056b584-772e-44a1-84c9-1afbaf536e40&choicely=1&what=keyword:门东历史街&resultTypes=poi,busline&submittime=1}&hasResult&city=南京
[2015-11-01 00:00:24] service=search15&&costtime=49ms&&visitorIP=10.153.19.45&&reqid=_mobileengine_14463072242573239&&uvid=3b6bbd179c995f5e778e84d69e819a39b797fce5&&searchWord=null&&rmiCosttime=3ms&&userAgent={Map/7.0.0 (iPhone; iOS 7.1.1; Scale/2.00)}&&status=ok&&querystring={GET level=17&aroundEntrance=1&bound=12618761.000000,2557212.750000,12619265.000000,2557738.250000&spaninfo=&log=1&range=city:中山市&pageinfo=&encrypt=1&loc=12619007.000000,2557192.750000&version=5.2&moblog=u:1432039182978487,pd:2,bsns:0,kd:3b6bbd179c995f5e778e84d69e819a39b797fce5,vd:794A468A-753F-4989-9B3A-C27960D6D964,os:ios7.1.1,v:70000000,md:iPhone6,2,vn:7.0.0,screen:640-1136,net:2,op:460-01,sid:66,ptoken:49121A533AAC1C204D5C73EB6E482EB6023862A3A6ADCB3EEF5D77DD0506AA90,reqId:B5E187CA-3C16-4DA5-887D-57EC54966F7C,t:2,type:0&what=id:1000062445059$宜必思酒店(中山中心店)&choicely=1&resultTypes=poi&submittime=0}&hasResult&city=中山市





有这么个文档,我只列出部分信息,需要提取几个值
what=id:1000062445059,what=keyword:1000062445059,city=中山市,t:2,如图


QQ图片20151230130948.png (93.62 KB, 下载次数: 36)

QQ图片20151230130948.png

QQ图片20151230130948.png (93.62 KB, 下载次数: 41)

QQ图片20151230130948.png

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
2 [报告]
发表于 2015-12-30 14:27 |只看该作者
本来就不会写代码,再加上好久没写了,手生了,更不会写了,写了个比较笨的,还凑合着能实现需求......
求高手给优化
  1. awk -F '&|,' '{for(i=1;i<=NF;i++)if($i ~ /^t:[0-9]+/)a=$i;for(j=1;j<=NF;j++)if($j ~ /what=(id|keyword):[0-9]+/) print gensub(/\$.*/,"",1,$j)","$NF","a}'  file
复制代码

论坛徽章:
0
3 [报告]
发表于 2015-12-30 14:42 |只看该作者
挺牛逼,再问一句,能不能只把具体值提取出来,例如what=id:999900002141402,city=温州市,t:2,只要999900002141402,温州市,2 这样的结果回复 2# drakness


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2015-12-30 14:48 |只看该作者
$ awk 'function m(s){return match($0,s"[:=]([^&$]+)",a)?a[1]:""}{print "id="m("what=id"),"kw="m("what=keyword"),"city="m("city")}' FILE
id=1_998000012529169 kw= city=香港特别行政区
id= kw=715 city=武汉
id= kw=门东历史街 city=南京
id=1000062445059 kw= city=中山市

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
5 [报告]
发表于 2015-12-30 15:22 |只看该作者
回复 3# mvplove123

稍微修改一下就可以
  1. awk -F '&|,' '{for(i=1;i<=NF;i++)if($i ~ /^t:[0-9]+/)for(j=1;j<=NF;j++)if($j ~ /what=(id|keyword):[0-9]+/)print gensub(/what=\w+:|\$.*/,"","g",$j)","gensub(/city=/,"",1,$NF)","gensub(/t:/,"",1,$i)}' file
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP