我有这样的ip数据库(成熟-apnic):
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),如下所示:
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来做这个呢?
发布于 2016-03-22 09:17:24
使用awk,您可以:
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输出:
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字段。
https://stackoverflow.com/questions/36150158
复制相似问题