首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解析和转换ip数据库?

如何解析和转换ip数据库?
EN

Stack Overflow用户
提问于 2016-03-22 09:08:19
回答 1查看 256关注 0票数 1

我有这样的ip数据库(成熟-apnic):

代码语言:javascript
复制
inetnum:      218.75.100.64 - 218.75.100.67
netname:      YONGKANG-SHIJI-NETBAR
country:      CN
descr:        Yongkang Shiji Internet Bar
descr:        NULL
admin-c:      XY203-AP
tech-c:       CJ54-AP
status:       ASSIGNED NON-PORTABLE
changed:      auto-dbm@dcb.hz.zj.cn 20040610
mnt-by:       MAINT-CN-CHINANET-ZJ-JH
source:       APNIC

inetnum:        218.75.99.0 - 218.75.99.3
netname:        WEISHENG-COLTD
country:        CN
descr:          Donggan Hospital
descr:
admin-c:        DS1202-AP
tech-c:         CJ54-AP
mnt-irt:        IRT-CHINANET-ZJ
status:         ASSIGNED NON-PORTABLE
changed:        zjnoc_ip_5@163.com 20150510
mnt-by:         MAINT-CN-CHINANET-ZJ-JH
source:         APNIC
...

我需要转换为csv文件(只是ipstart-ipend-netname-country-descr1-source),如下所示:

代码语言:javascript
复制
218.75.100.64;218.75.100.67;YONGKANG-SHIJI-NETBAR;CN;Yongkang Shiji Internet Bar;APNIC
218.75.99.0;218.75.99.3;WEISHENG-COLTD;CN;Donggan Hospital;APNIC
...

我怎么才能用awk或bash来做这个呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-22 09:17:24

使用awk,您可以:

代码语言:javascript
复制
awk -F ':[[:blank:]]*' '/inetnum:/{ip=$2; sub(/ +- +/, ";", ip)} /netname:/{nn=$2}
   /country:/{ct=$2} ds=="" && /descr:/{ds=$2}
  /source:/{print ip, nn, ct, ds, $2; ds=""}' OFS=";" file

输出:

代码语言:javascript
复制
218.75.100.64;218.75.100.67;YONGKANG-SHIJI-NETBAR;CN;Yongkang Shiji Internet Bar;APNIC
218.75.99.0;218.75.99.3;WEISHENG-COLTD;CN;Donggan Hospital;APNIC

这将忽略第二个descr字段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36150158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档