免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7058 | 回复: 17

如何统计一行里某个字符出现的次数及补全缩写ip地址,已解决供参考 [复制链接]

论坛徽章:
0
发表于 2010-10-19 09:17 |显示全部楼层
本帖最后由 skylove 于 2010-10-19 10:10 编辑

我通过
http://www.nic.edu.cn/RS/ipstat/index.html
这里,获得了类似

region=BJ                  
162.105/16, 166.111/16, 202.4.128/19,
202.112.64/18, 202.112.128/17, 202.113/16, 202.204/14, 210.31/16, 211.68/16, 211.71/16,
211.81/16, 211.82/16, 219.242/16, 219.243.0/17, 219.243.128/18,


这么一些基于教育段的ip地址,整理后类似如下格式

162.105/16
166.111/16
202.4.128/19
202.112.64/18
202.112.128/17
202.113/16

如何将 162.105/16 补全为 162.105.0.0/16 这样的完备格式呢?

我的思路是。。。判断每行内 .  字符的数量,若数量为0,则将 / 替换为 .0.0.0/ ; 若.为一个,将/替换为.0.0/ ;若.为2个,则/替换为.0/ 这样来补全~~~但不知用哪个命令来获取一行内某字符个数?盼指教

以上方法比较笨,同时也诚请各位大牛提供更科学快捷的解决方案,谢谢

论坛徽章:
0
发表于 2010-10-19 09:32 |显示全部楼层
awk -F'.' '{print NF-1}'

用这个方法搞定了小数点符号个数的统计,现在程序基本能写出来了。。。但是依然觉得方法很笨,诚求有无直接搞定的方案

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2010-10-19 09:41 |显示全部楼层
本帖最后由 expert1 于 2010-10-19 09:44 编辑

回复 1# skylove
  1. awk -F '[/,]' '{n=split($1,b,".");if(n==2)print $1".0.0/"$2;else if(n==3)print $1".0/"$2}'
复制代码
未测,但是应该问题不大,针对你原始的文件。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2010-10-19 09:45 |显示全部楼层
回复 2# skylove


    OK,well done!!!
162.105.0.0/16
166.111.0.0/16
202.4.128.0/19
202.112.64.0/18
202.112.128.0/17
202.113.0.0/16

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
发表于 2010-10-19 09:54 |显示全部楼层

  1. sed 's#/#.0.0.0/#g
  2. s#\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)[^/]*/#\1/#g' urfile
复制代码

论坛徽章:
0
发表于 2010-10-19 09:59 |显示全部楼层
换了种思路。。。
  1. cat edu-ip | grep '^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/' > edu_ip_real
  2. cat edu-ip | grep '^[0-9]*\.[0-9]*\.[0-9]*/' | sed 's/\//.0\//' >> edu_ip_real
  3. cat edu-ip | grep '^[0-9]*\.[0-9]/' | sed 's/\//.0.0\//' >> edu_ip_real
  4. cat edu-ip | grep '^[0-9]*/' | sed 's/\//.0.0.0\//' >> edu_ip_real
复制代码
这样的4行来搞定 (根据实际情况,1,4行没用到,只用到2,3两行),遍历了该文件2次。。。效率能接受

论坛徽章:
0
发表于 2010-10-19 10:01 |显示全部楼层
不好意思,我在用笨方法试,所以回帖慢了而且没刷新看,谢谢 expert1  和 waker 两位大牛~~~确实高效率啊。。。啊。。。啊。。。

学习了

论坛徽章:
0
发表于 2010-10-19 10:05 |显示全部楼层
expert1 兄的代码我看懂了。。。相当ok~~~

waker老大的代码完全没看懂。。。试着运行了一下完全ok。。。不得不佩服啊。。。

只有先囫囵吞枣拿下,慢慢研究了。。。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2010-10-19 10:09 |显示全部楼层
回复 8# skylove


    歪客斑竹的sed全是正则,囧,慢慢研究吧。

论坛徽章:
0
发表于 2010-10-19 10:12 |显示全部楼层
顺带奉送 2010.10.04 日,该网址统计出来的最新教育网ip段。。。给有需求的朋友,已利用上面两位大牛的方法整理

162.105.0.0/16
166.111.0.0/16
202.4.128.0/19
202.112.64.0/18
202.112.128.0/17
202.113.0.0/16
202.204.0.0/14
210.31.0.0/16
211.68.0.0/16
211.71.0.0/16
211.81.0.0/16
211.82.0.0/16
219.242.0.0/16
219.243.0.0/17
219.243.128.0/18
219.224.0.0/17
219.224.128.0/18
219.225.0.0/16
219.226.0.0/16
222.28.0.0/14
222.199.0.0/16
59.64.0.0/14
203.91.120.0/21
121.193.0.0/16
121.194.0.0/15
118.228.0.0/15
118.230.0.0/16
121.52.160.0/19
115.24.0.0/14
183.172.0.0/14
202.117.0.0/16
202.200.0.0/15
210.26.0.0/15
218.195.0.0/16
219.244.0.0/14
222.23.0.0/16
222.24.0.0/15
59.74.0.0/15
59.76.0.0/16
120.95.0.0/16
115.154.0.0/15
111.114.0.0/15
202.115.0.0/16
202.202.0.0/15
210.40.0.0/15
211.83.0.0/16
218.194.0.0/16
219.221.0.0/16
222.18.0.0/15
222.196.0.0/15
222.198.0.0/16
121.48.0.0/15
120.94.0.0/16
113.54.0.0/15
180.84.0.0/15
223.128.0.0/15
202.38.192.0/18
202.116.0.0/16
202.192.0.0/15
210.36.0.0/14
211.66.0.0/16
218.192.0.0/16
219.222.0.0/15
219.227.0.0/16
222.16.0.0/15
222.200.0.0/14
125.216.0.0/15
125.218.0.0/16
116.56.0.0/15
116.13.0.0/16
110.64.0.0/15
1.184.0.0/15
202.114.0.0/16
202.196.0.0/15
210.42.0.0/15
211.69.0.0/16
211.67.0.0/16
211.84.0.0/15
218.196.0.0/14
222.20.0.0/15
222.22.0.0/16
59.68.0.0/14
125.219.0.0/16
125.220.0.0/15
122.204.0.0/14
115.156.0.0/15
115.158.0.0/16
183.168.0.0/15
183.170.0.0/16
49.120.0.0/14
202.38.64.0/19
202.119.0.0/16
202.194.0.0/15
210.44.0.0/15
210.28.0.0/15
211.64.0.0/15
211.70.0.0/16
211.86.0.0/15
219.218.0.0/15
219.230.0.0/15
222.192.0.0/14
222.206.0.0/15
58.192.0.0/15
121.248.0.0/14
114.212.0.0/15
114.214.0.0/16
180.201.0.0/16
180.208.0.0/15
1.51.0.0/16
223.2.0.0/15
202.120.0.0/15
210.32.0.0/14
211.80.0.0/16
218.193.0.0/16
219.220.0.0/16
219.228.0.0/15
222.204.0.0/15
59.77.0.0/16
59.78.0.0/15
58.198.0.0/15
121.192.0.0/16
111.186.0.0/15
175.185.0.0/16
175.186.0.0/15
49.52.0.0/14
202.118.0.0/16
202.198.0.0/15
210.46.0.0/15
210.30.0.0/16
219.216.0.0/15
222.26.0.0/15
59.72.0.0/15
125.222.0.0/15
58.154.0.0/15
118.202.0.0/15
111.116.0.0/15
202.38.96.0/19
202.38.140.0/23
202.38.184.0/21
202.127.216.0/21
202.127.224.0/19
202.112.0.0/18
210.25.128.0/18
219.243.192.0/18
219.224.192.0/18
210.25.0.0/17
58.194.0.0/15
58.200.0.0/13
58.196.0.0/15
202.179.240.0/20
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP