perl

分享一个perl脚本–不排序排重

通常情况下,对与一批ip地址的排重操作,无非都是在shell下,先sort,在uniq一下,然后得到的就是去除掉重复ip的内容了。

最近蚊子就接到个任务,有一批ip地址要进行排重操作,但对方有要求了,不能改变原有ip地址的顺序。

接到这个任务的时候,着实有点无从下手的感觉了。

不过还好,在同事的提醒下,想起了perl

实现方式是这样的,在perl中可以使用hash,将ip地址做为hash的一个key,然后判断hash中的key是否存在,如果不存在,就将ip插入进hash,存在就不做任何操作,最后把hash的key打印出来就是排重后的ip地址了。

代码如下:

1,打开含有ip的文件,每个ip地址一行
2,定义一个名叫ip的hash
3,从文件中读取内容,每次一行
4,去掉每行最后的换行符
5,判断是否存在以ip为key的hash内容
6,不存在就将ip插入hash
7,打印唯一的内容
9,打印重复的内容

这样执行完之后,能看到重复的和唯一的就分开了

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.