免费注册 查看新帖 |

Chinaunix

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

问一个问题,如何按照字符串分割文件,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-11 19:44 |只看该作者 |倒序浏览
源文件如下:
70 CDR GATEIN={
   causeForTermination=0(Normal Release)
   diagnostics=H'0102
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
}
--------------------------------------------------------------------------------
71 CDR GATEOUT={
  causeForTermination=0(Normal Release)
   diagnostics=H'0102
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
}
--------------------------------------------------------------------------------
71 CDR GATEOUT={
   causeForTermination=0(Normal Release)
   diagnostics=H'0000
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
   RedirNumber{
      AddInd=H'1
      NumPlan=H'1
      ISDN=8613370789688111
   }
}
--------------------------------------------------------------------------------
要求以“CDR”字符串为分隔符,分别保存为三个单独的文件,即:
a.txt:
70 CDR GATEIN={
   causeForTermination=0(Normal Release)
   diagnostics=H'0102
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
}
b.txt:
71 CDR GATEOUT={
  causeForTermination=0(Normal Release)
   diagnostics=H'0102
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
}
c.txt:
71 CDR GATEOUT={
   causeForTermination=0(Normal Release)
   diagnostics=H'0000
   chargedParty=0(Originator Charged)
   IsPulseChargeSup=0
   RedirNumber{
      AddInd=H'1
      NumPlan=H'1
      ISDN=8613370789688111
   }
}
谢谢了

论坛徽章:
0
2 [报告]
发表于 2010-02-11 20:14 |只看该作者
怎么又起一新帖?
  1. awk -v RS='----+\n' '{print >NR".txt"}' file
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-02-11 20:39 |只看该作者
回复 2# ywlscpl


    结果不对哦,

论坛徽章:
0
4 [报告]
发表于 2010-02-11 20:43 |只看该作者
回复 3# d_jacky
  1. [root@Mylinux tmp]# awk -v RS='----+\n' '{print >NR".txt"}' file
  2. [root@Mylinux tmp]# cat 1.txt
  3. 70 CDR GATEIN={
  4.    causeForTermination=0(Normal Release)
  5.    diagnostics=H'0102
  6.    chargedParty=0(Originator Charged)
  7.    IsPulseChargeSup=0
  8. }

  9. [root@Mylinux tmp]# cat 2.txt
  10. 71 CDR GATEOUT={
  11.   causeForTermination=0(Normal Release)
  12.    diagnostics=H'0102
  13.    chargedParty=0(Originator Charged)
  14.    IsPulseChargeSup=0
  15. }

  16. [root@Mylinux tmp]# cat 3.txt
  17. 71 CDR GATEOUT={
  18.    causeForTermination=0(Normal Release)
  19.    diagnostics=H'0000
  20.    chargedParty=0(Originator Charged)
  21.    IsPulseChargeSup=0
  22.    RedirNumber{
  23.       AddInd=H'1
  24.       NumPlan=H'1
  25.       ISDN=8613370789688111
  26.    }
  27. }
复制代码

论坛徽章:
0
5 [报告]
发表于 2010-02-11 20:46 |只看该作者
awk 'BEGIN{ RS = "-+" } { print > NR".TXT" }' file

论坛徽章:
0
6 [报告]
发表于 2010-02-12 08:05 |只看该作者
你们2的意思是一样的···结果应该都是对的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP