欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

freebsd 下bshell命令有关问题

更新时间: 2014-05-15 03:29:25 责任编辑: Author_N3

 

FreeBSD 下Bshell命令问题
我的日志格式如下:
{"CP_LAT":0.0,"CP_PHONENUM":"","CP_RATIO":"480*800","actions":[{"action":"searchandrange","paras":{"ps":10,"city_id":"19010000","standard":"02","near_order_by":"","lat":"","distance":"","order_by":"popular","keyword":"\u4e2d\u56fd\u6c5f\u82cf\u7701\u5357\u4eac\u5e02\u73af\u6e56\u8def","type":"","lon":"","mark":"1","trade_name":"","pn":1},"requuid":"319bd356-4680-49e7-9d1c-1a91ab863411"}],"CP_TOUCH":"1","CP_PRT":"SHA001A02600","CP_PUBRESPATH":"file:///android_asset/more/public","CP_TPL":"android","CP_CITYID":"19010000","CP_UID":"","CP_LON":0.0,"CP_IMEI":"000000000000000","CP_RESVER":"1.0","CP_CH":"A001","CP_PLTFM":"ANDROID","CP_MODEL":"sdk-15-4.0.4","CP_VER":"2.6.0"}

用sed命令截取CP_TPL和CP_IMEI的值,如上条日志截取结果就是:android 000000000000000
上面例子为文件中的一条记录,观察所有记录 这两个字段的位置不确定(没办法用awk -F":"截取),字段值的长短不确定(例如CP_TPL的值可能是adroid ios java...),该怎么做啊?
  sed  freebsd
--参考方法--
引用:
引用:版主的方法不可取,人家说了,位置不定,所以有可能CP_IMEI会出现在CP_TPL前面的。这个问题我认为一步搞不定,最好先用,做FS,把每一项都提取出来,然后再过滤出……
我觉得楼主说的位置不定主要是指列数不定,看看楼主怎么回复吧。

不过仔细想想即使颠倒用你提供的这个方法也能实现,多加一句处理就行了,用一条命令能搞定当然是最好的了:
sed -e 's/.*CP_TPL...\([^"]\+\).*CP_IMEI...\([^"]\+\).*/\1 \2/' -e 's/.*CP_IMEI...\([^"]\+\).*CP_TPL...\([^"]\+\).*/\2 \1/' urfile

--参考方法--
sed 's/.*CP_TPL...\([^"]\+\).*CP_IMEI...\([^"]\+\).*\
--参考方法--
.*CP_IMEI...\([^"]\+\).*CP_TPL...\([^"]\+\).*/\1 \2/' urfile

--参考方法--
格式上显然是逗号分隔,然后用冒号分隔域名和数值。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-05-15 03:29:25
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/351146/
本文WWW.DOC100.NET DOC100.NET版权所有。