免费注册 查看新帖 |

Chinaunix

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

[文本处理] 不知道怎么才能提取出xml里的值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-26 14:06 |只看该作者 |倒序浏览
想请教下高手,怎么才能把下面的xml内容:
  <Traffice time="2014-12-16 00:05">90337312</Traffice>
  <Traffice time="2014-12-16 00:10">89263923</Traffice>

提取成这样:
2014-12-16 00:05,90337312
2014-12-16 00:10,89263923

非常感谢!

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
5 [报告]
发表于 2015-08-26 14:28 |只看该作者
本帖最后由 hjfeng1988 于 2015-08-26 14:28 编辑
  1. sed 's/[^"]*"//;s/">/,/;s/<.*//' file
  2. sed -r 's/.*"([0-9: -]+)">([0-9]+).*/\1,\2/' file
复制代码

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
2 [报告]
发表于 2015-08-26 14:11 |只看该作者
  1. awk -F '["<>]+' '{print $3","$4}' file
复制代码

论坛徽章:
0
3 [报告]
发表于 2015-08-26 14:15 |只看该作者
我一直在想怎么拿sed提取,还是高手厉害。。。

论坛徽章:
7
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:18程序设计版块每日发帖之星
日期:2015-08-09 06:20:00每日论坛发贴之星
日期:2015-08-09 06:20:00程序设计版块每日发帖之星
日期:2015-08-22 06:20:00程序设计版块每日发帖之星
日期:2015-08-27 06:20:00
4 [报告]
发表于 2015-08-26 14:25 |只看该作者
sed 's/.*"\(.*\)">\(.*\)<.*$/\1,\2/' test.dat

不是很严谨~~但是能凑合。哈哈

论坛徽章:
0
6 [报告]
发表于 2015-08-26 14:49 |只看该作者
泪奔了,试了半天还是没有办法把其他的内容删除,只能再麻烦帮忙看看。谢谢!
怎么能把下面这些内容:
<?xml version="1.0" encoding="UTF-8"?>
<BandWidthData>
  <Result>success</Result>
  <DetailInfo>expired 20 milliseconds.</DetailInfo>
  <BillingIDs>
    <BillingID>987</BillingID>
  </BillingIDs>
  <StartTime>201508010000</StartTime>
  <EndTime>201508010010</EndTime>
  <MaxData>754927491</MaxData>
  <AvgData>736513297</AvgData>
  <Traffice time="2014-12-16 00:05">90337312</Traffice>
  <Traffice time="2014-12-16 00:10">89263923</Traffice>
</BandWidthData>  

处理为:
2014-12-16 00:05,90337312
2014-12-16 00:10,89263923

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
7 [报告]
发表于 2015-08-26 15:19 |只看该作者
  1. awk -F '["<>]+' '/Traffice time/{print $3","$4}' file
复制代码

论坛徽章:
0
8 [报告]
发表于 2015-08-26 16:53 |只看该作者
如果是<BandWidthData>xxx</BandWidthData>的内容被输出到一行呢?相当于:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <BandWidthData><Result>success</Result><DetailInfo>expired 9268 milliseconds.</DetailInfo><BillingIDs><BillingID>689</BillingID></BillingIDs><StartTime>201508010000</StartTime><EndTime>201508010010</EndTime><MaxData>754927491</MaxData><AvgData>736513297</AvgData><Traffice time="2014-12-16 00:05">90337312</Traffice><Traffice time="2014-12-16 00:10">89263923</Traffice></BandWidthData>
复制代码

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
9 [报告]
发表于 2015-08-26 17:03 |只看该作者
回复 8# ABrthur


    你还是选个对解析 XML 有专门支持的编程语言吧, Perl, Python 等等都可以.

论坛徽章:
0
10 [报告]
发表于 2015-08-26 17:11 |只看该作者
说的是,等把这个东西处理完就去学。对sed awk一直是用的时候才去看,水平老是没法提高...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP