免费注册 查看新帖 |

Chinaunix

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

问一个关于提取字段的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-11 18:17 |只看该作者 |倒序浏览
原始文件如下:
70 CDR GATEIN={
   RecordType=0(GATEIN)
   sequenceNumber=8926309
   callingNumber{
      AddInd=H'2
      NumPlan=H'1
      ISDN=13896551373
   }
   calledNumber{
      AddInd=H'4
      NumPlan=H'1
      ISDN=15310118256
   }
   mscNumber{
      AddInd=H'1
      NumPlan=H'6
      ISDN=460030934026100
   }
   incomingTKGP=1153
   outgoingTKGP=1041
   inTrunkGpModule=7
   outTrunkGpModule=0
   timeForSeizeChannel=2010-02-11 13:58:59
   timeForAnswer=2010-02-11 13:59:05
   timeForRelease=2010-02-11 13:59:59
   callDuration=54(seconds)
   partialOutputRecNum=0
   lastPartialOutput(The last CDR)
   callReference{
      Module=7
      SequenceNo=1409514
   }
   causeForTermination=0(Normal Release)
   diagnostics=H'0102
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
}
--------------------------------------------------------------------------------
71 CDR GATEOUT={
   RecordType=1(GATEOUT)
   sequenceNumber=8926310
   callingNumber{
      AddInd=H'2
      NumPlan=H'1
      ISDN=13340393562
   }
   calledNumber{
      AddInd=H'2
      NumPlan=H'1
      ISDN=1502359285111
   }
   mscNumber{
      AddInd=H'1
      NumPlan=H'6
      ISDN=460039340261002222
   }
   incomingTKGP=1041
   outgoingTKGP=1153
   inTrunkGpModule=0
   outTrunkGpModule=7
   timeForSeizeChannel=2010-02-11 13:58:54
   timeForAnswer=2010-02-11 13:59:09
   timeForRelease=2010-02-11 13:59:59
   callDuration=50(seconds)
   partialOutputRecNum=0
   lastPartialOutput(The last CDR)
   callReference{
      Module=22
      SequenceNo=214829
   }
   causeForTermination=0(Normal Release)
   diagnostics=H'0102
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
}
--------------------------------------------------------------------------------
71 CDR GATEOUT={
   RecordType=1(GATEOUT)
   sequenceNumber=8926498
   callingNumber{
      AddInd=H'1
      NumPlan=H'1
      ISDN=008613114001808111
   }
   calledNumber{
      AddInd=H'2
      NumPlan=H'1
      ISDN=138963421113331
   }
   mscNumber{
      AddInd=H'1
      NumPlan=H'6
      ISDN=460030934111026100
   }
   incomingTKGP=1041
   outgoingTKGP=1164
   inTrunkGpModule=0
   outTrunkGpModule=14
   timeForSeizeChannel=2010-02-11 13:59:02
   timeForAnswer=2010-02-11 13:59:23
   timeForRelease=2010-02-11 14:00:03
   callDuration=40(seconds)
   partialOutputRecNum=0
   lastPartialOutput(The last CDR)
   callReference{
      Module=23
      SequenceNo=213924
   }
   causeForTermination=0(Normal Release)
   diagnostics=H'0000
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
   RedirNumber{
      AddInd=H'1
      NumPlan=H'1
      ISDN=8613370789688
   }
}
--------------------------------------------------------------------------------
如何提取CDR GATEOUT里面的callingNumber,谢谢,

论坛徽章:
0
2 [报告]
发表于 2010-02-11 18:32 |只看该作者
请各位帮忙一下,有点急,谢谢了

论坛徽章:
0
3 [报告]
发表于 2010-02-11 18:36 |只看该作者
本帖最后由 709101040516 于 2010-02-11 18:38 编辑
  1. awk '/callingNumber\{/,/calledNumber\{/{print}' URFILE|grep -v 'calledNumber{'
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-02-11 18:37 |只看该作者
回复 2# d_jacky


    弄好了,这么急啊!

论坛徽章:
0
5 [报告]
发表于 2010-02-11 18:41 |只看该作者
这个好像不行哦,我要求的是
71 CDR GATEOUT={
   RecordType=1(GATEOUT)
   sequenceNumber=8926310
   callingNumber{
      AddInd=H'2
      NumPlan=H'1
      ISDN=13340393562
   }
   calledNumber{
      AddInd=H'2
      NumPlan=H'1
      ISDN=1502359285111
   }
   mscNumber{
      AddInd=H'1
      NumPlan=H'6
      ISDN=460039340261002222
   }
   incomingTKGP=1041
   outgoingTKGP=1153
   inTrunkGpModule=0
   outTrunkGpModule=7
   timeForSeizeChannel=2010-02-11 13:58:54
   timeForAnswer=2010-02-11 13:59:09
   timeForRelease=2010-02-11 13:59:59
   callDuration=50(seconds)
   partialOutputRecNum=0
   lastPartialOutput(The last CDR)
   callReference{
      Module=22
      SequenceNo=214829
   }
   causeForTermination=0(Normal Release)
   diagnostics=H'0102
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
}
里面的callingNumber,你的会不会把所有的callingNumber都取出来了

论坛徽章:
0
6 [报告]
发表于 2010-02-11 18:48 |只看该作者
  1. [18:09:19 pana ~ 3.2]#awk '/callingNumber\{/,/calledNumber\{/{print}' 33|grep -v 'calledNumber{'
  2.    callingNumber{
  3.       AddInd=H'2
  4.       NumPlan=H'1
  5.       ISDN=13896551373
  6.    }
  7.    callingNumber{
  8.       AddInd=H'2
  9.       NumPlan=H'1
  10.       ISDN=13340393562
  11.    }
  12.    callingNumber{
  13.       AddInd=H'1
  14.       NumPlan=H'1
  15.       ISDN=008613114001808111
  16.    }
复制代码
这样不对吗??你不是要这样的结果吗?

论坛徽章:
0
7 [报告]
发表于 2010-02-11 18:49 |只看该作者
你直接说清楚你想要的结果

论坛徽章:
0
8 [报告]
发表于 2010-02-11 18:52 |只看该作者
是这个:
calledNumber{
      AddInd=H'4
      NumPlan=H'1
      ISDN=15310118256
   }
是71 CDR GATEOUT={}大结构里面的calledNumber

论坛徽章:
0
9 [报告]
发表于 2010-02-11 18:59 |只看该作者
你这里面有2个 71 CDR

论坛徽章:
0
10 [报告]
发表于 2010-02-11 19:02 |只看该作者
本帖最后由 709101040516 于 2010-02-11 19:11 编辑

暂时写了个很傻逼的
  1. awk '/71\ CDR\ GATEOUT=\{/,/mscNumber\{/{print}' 33| awk '/calledNumber\{/,/mscNumber\{/{print}'|grep -v 'mscNumber{'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP