笨命令
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 |
1月10晚上在群里slamdunk聊起他要在几百个电话号码里找出重复的来,我突然想起今天上午我学的sed命令来了,就叫slamdunk把那个有电话的文本文件给我,让我练练,slamdunk就把电话号码给我了。
一些简单的命令而功能强大的命令还不会,下面只是一个笨方法。
其结构大概是这样的:
[8615940364717] to [\\.\COM10--8615801783740]
[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
[8615972318131] to [\\.\COM10--8615801783740]
[8615962985577] to [\\.\COM10--8615801783740]
[8613585458567] to [\\.\COM10--8615801783740]
8613851459841] to [\\.\COM10--8615801783740]
不过还有几个个别的。
下面先说说我的笨命令吧
1、先直接在XP上复制,用secureCRT连到LINUX,vi建一个文件,直接复制上去,省的有些回车符不一样。取名:phone
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
继续替换一些别的形式开头的,主要是想把格式都一样的排列起来。怕乱了,所以每做一些改变就存一下。用sed替换完了的结果,有的行还有些日期什么的,还好这个文件不是太大,还能大概看一下。然后就grep '^1'这个把电话号码全部找出来。如果有1月开头的行也不怕,下面还可以过滤呢。
4、cat phone4 | sort -n | uniq -c > phone5
用sort –n 进行排序 ,用uniq –c 进行计算并去掉重复的。这样在phone5里有会那个重复几次有显示了。
5、cat phone5 | sort –n
上面phone5里是在那里重复了就在那里标记,而不是在一起,不太容易看,再用sort –n排一次序,就可以按重复1次、2次、3次的这么排下来了。
这样就找出重复的出来了,我知道这是一种笨方法,还请高手们指教一些更简单,更高效的方法。谢谢!
本文出自 “走在左边” 博客,转载请与作者联系! 本文出自 51CTO.COM技术博客 |



走在左边
博客统计信息
热门文章
最新评论
友情链接
