当前位置: 技术问答>linux和unix
一条shell老问题,请大家来帮帮忙啊!!
来源: 互联网 发布时间:2017-04-08
本文导语: 这个是一个txt文件,文件名:test.txt,其内容如下 Start of Data ********************************************************************** Record (1) "EGSNPDPRecord" "recordType" = "00E1" "servedIMSI" = "455001131950438" "ggsniPBinV4Address" = "116193008089" ...
这个是一个txt文件,文件名:test.txt,其内容如下
Start of Data
**********************************************************************
Record (1) "EGSNPDPRecord"
"recordType" = "00E1"
"servedIMSI" = "455001131950438"
"ggsniPBinV4Address" = "116193008089"
"chargingID" = "72DF9D5B"
End of Record (1)
Record (2) "EGSNPDPRecord"
"recordType" = "00E1"
"servedIMSI" = "455001151010916"
"ggsniPBinV4Address" = "116193008089"
"chargingID" = "5B9DB29F"
End of Record (2)
Record (3) "EGSNPDPRecord"
.....
.....
.....
End of Record (3)
............
End of Record (120)
**********************************************************************
End of Data
注意:以上格式都是Record (..) "..." 直到 End of Record (..)结束,并且其中间的行数不一致
问题:使用Shell或者awk(必须要用到"Record"和"End of Record"这两个字符串做条件),将上述的文件转换成如下格式,写到一个文件,文件名另定
Result File:
00E1|455001131950438|116193008089|72DF9D5B
00E1|455001151010916|116193008089|5B9DB29F
.....
-------------------------------------------------------------------------
我的解决方案:
---简短的几条数据我还是可以弄出来,但是数据一多起来,我就没办法了。老是搞不对。
$ awk 'BEGIN{FS="""}/= /{v[i++]=$4}END{print "Result File:";for(i=0;i