免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk如何从文件中提取相关数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-10 14:20 |只看该作者 |倒序浏览
原始数据如下
<hgsdp:msisdn=8613508114561;
HLR SUBSCRIBER DATA

SUBSCRIBER IDENTITY
MSISDN           IMSI             STATE          AUTHD
8613508114561    460008131515578  CONNECTED      AVAILABLE

NAM  RID
0    2

PERMANENT SUBSCRIBER DATA
SUD
BAIC-1       BAOC-1       CAT-10       DBSG-1
NAM-0        OBR-2        OFA-0        OSB3-1
PWD-0000     SOCB-0       TS21-1       TS22-1
TSMO-0       DCSIST-0     GPRSCSIST-0  MCSIST-0
OCSIST-1     OSMCSIST-0   TCSIST-1     TSMCSIST-0
VTCSIST-0
SCHAR-0-0

AMSISDN            BS       BC
NONE

SUPPLEMENTARY SERVICE DATA
BSG
TS20
SS       STATUS        FNUM                 TIME
                       SADD
BAIC     NOT ACTIVE
BAOC     NOT ACTIVE

LOCATION DATA
VLR ADDRESS       MSRN            MSC NUMBER          LMSID
4-8613443526                      8613443526

SGSN NUMBER
4-8613746815

PACKET DATA PROTOCOL CONTEXT DATA
APNID   PDPADD                EQOSID  VPAA  PDPCH    PDPTY  PDPID
    1                          401    NO             IPV4    1
    2                          401    NO             IPV4    2
  118                          401    NO             IPV4    3
2026   10.219.102.249         401    NO             IPV4    4

END
<hgsdp:msisdn=8613890139534;
HLR SUBSCRIBER DATA

SUBSCRIBER IDENTITY
MSISDN           IMSI             STATE          AUTHD
8613890139534    460000113940503  CONNECTED      AVAILABLE

NAM  RID
1    2

PERMANENT SUBSCRIBER DATA
SUD
BAOC-1       BOIC-1       BOIEXH-1     BS3G-1
CAT-10       CAW-1        CFB-1        CFNRC-1
CFNRY-1      CFU-1        DBSG-1       HOLD-1
NAM-1        OBO-2        OBR-2        OFA-1
OSB3-1       PWD-0000     SOCB-0       SOCFB-0
SOCFRC-0     SOCFRY-0     SOCFU-0      TS21-1
TS22-1       DCSIST-0     GPRSCSIST-0  MCSIST-0
OCSIST-1     OSMCSIST-0   TCSIST-1     TSMCSIST-0
VTCSIST-0
SCHAR-0-0

AMSISDN            BS       BC
NONE

SUPPLEMENTARY SERVICE DATA
BSG
TS20
SS       STATUS        FNUM                 TIME
                       SADD
BAOC     NOT ACTIVE
BOIC     NOT ACTIVE
BOIEXH   NOT ACTIVE

BSG
BS30
SS       STATUS        FNUM                 TIME
                       SADD
BAOC     NOT ACTIVE
BOIC     NOT ACTIVE
BOIEXH   NOT ACTIVE
CAW      ACTIVE-OP
CFU      NOT ACTIVE
CFB      NOT ACTIVE
CFNRY    NOT ACTIVE
CFNRC    NOT ACTIVE

LOCATION DATA
VLR ADDRESS       MSRN            MSC NUMBER          LMSID
UNKNOWN

PACKET DATA PROTOCOL CONTEXT DATA
NONE

END
<hgsdp:msisdn=8613890139954;
HLR SUBSCRIBER DATA

SUBSCRIBER IDENTITY
MSISDN           IMSI             STATE          AUTHD
8613890139954    460000113940574  CONNECTED      AVAILABLE

NAM  RID
1    2

PERMANENT SUBSCRIBER DATA
SUD
BAOC-1       BOIC-1       BOIEXH-1     BS3G-1
CAT-10       CAW-1        CFB-1        CFNRC-1
CFNRY-1      CFU-1        DBSG-1       HOLD-1
NAM-1        OBO-2        OBR-2        OFA-1
OSB3-1       PWD-0000     SOCB-0       SOCFB-0
SOCFRC-0     SOCFRY-0     SOCFU-0      TS21-1
TS22-1       DCSIST-0     GPRSCSIST-0  MCSIST-0
OCSIST-1     OSMCSIST-0   TCSIST-1     TSMCSIST-0
VTCSIST-0
SCHAR-0-0

AMSISDN            BS       BC
NONE

SUPPLEMENTARY SERVICE DATA
BSG
TS20
SS       STATUS        FNUM                 TIME
                       SADD
BAOC     NOT ACTIVE
BOIC     NOT ACTIVE
BOIEXH   NOT ACTIVE

BSG
BS30
SS       STATUS        FNUM                 TIME
                       SADD
BAOC     NOT ACTIVE
BOIC     NOT ACTIVE
BOIEXH   NOT ACTIVE
CAW      ACTIVE-OP
CFU      NOT ACTIVE
CFB      NOT ACTIVE
CFNRY    NOT ACTIVE
CFNRC    NOT ACTIVE

LOCATION DATA
VLR ADDRESS       MSRN            MSC NUMBER          LMSID
UNKNOWN

PACKET DATA PROTOCOL CONTEXT DATA
NONE

END
<hgsdp:msisdn=8613881155434;
HLR SUBSCRIBER DATA

SUBSCRIBER IDENTITY
MSISDN           IMSI             STATE          AUTHD
8613881155434    460000133902486  CONNECTED      AVAILABLE

NAM  RID
0    2

PERMANENT SUBSCRIBER DATA
SUD
BAOC-1       BOIC-1       BOIEXH-1     BS3G-1
CAT-10       CAW-1        CFB-1        CFNRC-1
CFNRY-1      CFU-1        DBSG-1       HOLD-1
NAM-0        OBO-2        OBR-2        OFA-1
OSB3-1       PWD-0000     SOCB-0       SOCFB-0
SOCFRC-0     SOCFRY-0     SOCFU-0      TS11-1
TS21-1       TS22-1       TSMO-0       DCSIST-0
GPRSCSIST-0  MCSIST-0     OCSIST-1     OSMCSIST-0
TCSIST-1     TSMCSIST-0   VTCSIST-0
SCHAR-0-0

AMSISDN            BS       BC
NONE

SUPPLEMENTARY SERVICE DATA
BSG
TS10
SS       STATUS        FNUM                 TIME
                       SADD
BAOC     NOT ACTIVE
BOIC     NOT ACTIVE
BOIEXH   NOT ACTIVE
CAW      NOT ACTIVE
CFU      NOT ACTIVE
CFB      NOT ACTIVE
CFNRY    NOT ACTIVE
CFNRC    NOT ACTIVE

BSG
TS20
SS       STATUS        FNUM                 TIME
                       SADD
BAOC     NOT ACTIVE
BOIC     ACTIVE-OP
BOIEXH   NOT ACTIVE

BSG
BS30
SS       STATUS        FNUM                 TIME
                       SADD
BAOC     NOT ACTIVE
BOIC     NOT ACTIVE
BOIEXH   NOT ACTIVE
CAW      ACTIVE-OP
CFU      NOT ACTIVE
CFB      NOT ACTIVE
CFNRY    NOT ACTIVE
CFNRC    NOT ACTIVE

LOCATION DATA
VLR ADDRESS       MSRN            MSC NUMBER          LMSID
UNKNOWN

SGSN NUMBER
UNKNOWN

PACKET DATA PROTOCOL CONTEXT DATA
APNID   PDPADD                EQOSID  VPAA  PDPCH    PDPTY  PDPID
    1                          401    NO             IPV4    1
    2                          401    NO             IPV4    2
  118                          401    NO             IPV4    3
  901                          401    NO             IPV4    4

END
<hgsdp:msisdn=8613547146696;
HLR SUBSCRIBER DATA

SUBSCRIBER IDENTITY
MSISDN           IMSI             STATE          AUTHD
8613547146696                     NOT CONNECTED

主要提取用户号和SGSN NUMBER,得到如下结果
8613508114561 4-8613746815
8613890139534 blank
8613881155434 UNKNOWN
8613547146696 deadnum
烦请提供帮助,谢谢。

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2015-06-10 14:41 |只看该作者
<hgsdp:msisdn=XXX;
..
..
..
END

这样是一段么?

8613890139534 blank  这里的blank 是从哪来的?

论坛徽章:
0
3 [报告]
发表于 2015-06-10 14:46 |只看该作者
因为8613890139534的用户数据中无SGSN NUMBER
这行,就用blank填充。

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
4 [报告]
发表于 2015-06-10 14:57 |只看该作者
回复 3# Ienovo_qq


    8613547146696 deadnum   deadnum 又是哪冒出来的?

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
5 [报告]
发表于 2015-06-10 15:02 |只看该作者
  1. awk 'BEGIN { RS="<"; FS="\n" } { for(i=1;i<=NF;i++)if($i~/^[ \t]*MSISDN|^[ \t]*SGSN NUMBER/){k=gensub(/^[ \t]*([^ ]*).*/,"\\1",1,$(i+1)); s=s?s" "k:k}if(s)print s;s="" } END {if(s)print s}' file
复制代码

论坛徽章:
0
6 [报告]
发表于 2015-06-10 15:10 |只看该作者
回复 4# 关阴月飞
因为这个号码8613547146696 的STATE为NOT CONNECTED 为空号,故结果为deadnum

   

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
7 [报告]
发表于 2015-06-10 15:15 |只看该作者
本帖最后由 关阴月飞 于 2015-06-10 15:16 编辑

回复 6# Ienovo_qq


    牙膏挤完了没?还有什么要交待的?

论坛徽章:
0
8 [报告]
发表于 2015-06-10 15:17 |只看该作者
回复 5# reyleon


    我用的是gawk, windows7系统,结果不对。

QQ截图20150610151610.png (4.24 KB, 下载次数: 58)

QQ截图20150610151610.png

论坛徽章:
0
9 [报告]
发表于 2015-06-10 15:18 |只看该作者
回复 7# 关阴月飞


    就这些了吧,我可能表达的不是很清楚,请大侠相助。

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
10 [报告]
发表于 2015-06-10 16:37 |只看该作者
8613890139954这个号码为什么没有出现在结果中?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP