1月10晚上在群里slamdunk聊起他要在几百个电话号码里找出重复的来,我突然想起今天上午我学的sed命令来了,就叫slamdunk把那个有电话的文本文件给我,让我练练,slamdunk就把电话号码给我了.
一些简单的命令而功能强大的命令还不会,下面只是一个笨方法.
其结构大概是这样的:
[8615940364717] to [\.COM10--8615801783740]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
拥有帝国一切,皆有可能。欢迎访问phome.net[8613664604507] to [\.COM10--8615801783740]
[8613831791046] to [\.COM10--8615801783740]
[8615959678020] to [\.COM10--8615801783740
[8613785642473] to [\.COM10--8615801783740
[8613915219073] to [\.COM10--8615801783740]
[8613859429423] to [\.COM10--8615801783740
[8613811268177] to [\.COM10--8615801783740
[8613819131161] to [\.COM10--8615801783740]
8613508305305] to [\.COM10--8615801783740]
[8613646175482] to [\.COM10--8615801783740]
8613575017712] to [\.COM10--8615801783740
8613932035877] to [\.COM10--8615801783740
拥有帝国一切,皆有可能。欢迎访问phome.net
[8615972318131] to [\.COM10--8615801783740]
[8615962985577] to [\.COM10--8615801783740]
[8613585458567] to [\.COM10--8615801783740]
8613851459841] to [\.COM10--8615801783740]
不过还有几个个别的.
下面先说说我的笨命令吧
1、先直接在XP上复制,用secureCRT连到LINUX,vi建一个文件,直接复制上去,省的有些回车符不一样.取名:
拥有帝国一切,皆有可能。欢迎访问phome.netphone
2、大概看了一下,找了找规律,coolerfeng说电话是11个数,这是规律,可我只用了开头数字的规律和分段.
cat phone | cut -d '']'' -f 1 | sed ''s/[86//g'' > phone2
(只需要第一列的电话,把以先把第一列提出来,然后把开头是“[86”替换成无,就是删除了.)
3、cat phone | cut -d '']'' -f 1 | sed ''s/[86//g'' | sed ''s/[//g'' > phone3
cat phone3 | sed ''s/^86//g'' | sed ''s/^009//g'' | sed ''s/0060//g'' | grep ''^1'' | more > phone4
拥有帝国一切,皆有可能。欢迎访问phome.net继续替换一些别的形式开头的,主要是想把格式都一样的排列起来.怕乱了,每做一些改变就存一下.用sed替换完了的结果,有的行还有些日期什么的,还好这个文件不是太大,还能大概看一下.然后就grep ''^1''这个把电话号码全部找出来.如果有1月开头的行也不怕,下面还可以过滤呢.
4、cat phone4 | sort -n | uniq -c > phone5
用sort –n 进行排序 ,用uniq –c 进行计算并去掉重复的.这样在phone5
拥有帝国一切,皆有可能。欢迎访问phome.net里有会那个重复几次有显示了.
5、cat phone5 | sort –n
上面phone5里是在那里重复了就在那里标记,而不是在一起,不太容易看,再用sort –n排一次序,就可以按重复1次、2次、3次的这么排下来了.
这样就找出重复的出来了,我知道这是一种笨方法,还请高手们指教一些更简单,更高效的方法.谢谢!
拥有帝国一切,皆有可能。欢迎访问phome.net |