您的位置:首页 > 运维架构 > Shell

shell脚本-统计邮箱地址

2008-07-12 14:35 155 查看
今天兽兽给了我一个任务,让我帮它统计一个文件里面的邮件地址,打开文件看了一下,发现格式很乱,而且毫无规律。想了想,就用最近学的shell来完成吧

初步想了一下,先把文章的每一列的数据合并到一个新文件,然后再从里面筛选邮件地址,由于邮件地址都会有@符号,因此很好找出来

#! /bin/bash
hang=`awk '{print NF}' 2.txt | uniq | sort -n | tail -n 1`
i=1
while [ $i -le $hang ]
do
awk -v i=$i '{print $i}' 2.txt >>tmpfile
i=`expr $i + 1`
done
grep @ tmpfile > 3.txt
第一行是取出文件有多少列,因为每行的列数不一样,所以用uniq去掉重复的,然后排序,然后最后一个数字就是最大的列数了

接下来是一个循环,从第一列开始循环,把第一列的数据追加到tmpfile里面,然后再第二列,直到最后一列,最后用grep命令来筛选数据

匆忙实现的,水平有限哈

附上原始文件的格式
骆俊 中国通信新闻 市场部主任,记者 6490 6017,6490 6015 [email]ccn@chinacns.com[/email]

常栋盛 中国电信建设 副主编 8497 5889,6499 4304 [email]STATE@263.net.cn[/email]

孙秀艳 人民日报市场报 编辑,记者 6509 1981,6509 2291

姚化化 新浪网 华北资深客户经理 6566 5009-3383 [email]yaohuahua@staff.sina.com.cn[/email]

陈妍 国际商报 主任记者 6762 8822-247 [email]gnb@ibdaily.com.cn[/email]

朱筠 中国网友报 业界要闻副主编 6492 9815 [email]zhuyun@cnii.com.cn[/email]

宫红宇 移动通信世界 广告部经理,编辑 6202 0548 [email]hongyu.gong@163.net[/email]

杨怿 通信世界报 记者,编辑 8510 9090-206 [email]editor@21ctn.com[/email]

关晋勇 经济日报 国际部 记者 6355 9988-2261 [email]guanjy@ced.com.cn[/email]

尹宏群 电脑网络通信周刊 主编 6851 4040-3720 [email]stdccw@public.bta.net.cn[/email]
。。。。。。。。。
后面还有很多行,就不罗列了

筛选完毕的文件格式
[email]panxh@21cn.com[/email]
[email]zhht@vip.sina.com[/email]
[email]liu_jiuru@ccw.com.cn[/email]
[email]dong_kaihong@ccw.com.cn[/email]
[email]chinacom@public.bta.net.cn[/email]
[email]jingyue@ccidconsulting.com[/email]
[email]zhouxs@xinhua.org[/email]
[email]hawkk@263.net[/email]
[email]chenxiaobing@morningpost.com.cn[/email]
[email]stdccw@public.bta.net.cn[/email]

[email]kjrb@homeway.com.cn[/email]
[email]jihongg@public.fhnet.cn.net[/email]

小小shell,需要的时候还是很方便的。呵呵
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 脚本 shell 休闲