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,需要的时候还是很方便的。呵呵
初步想了一下,先把文章的每一列的数据合并到一个新文件,然后再从里面筛选邮件地址,由于邮件地址都会有@符号,因此很好找出来
#! /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脚本实现C语言代码行数统计
- 采用shell脚本统计代码的行数
- Shell脚本统计当前目录下目录和文件的数量
- Shell脚本统计当前目录下目录和文件的数量
- shell脚本统计: netstat数据
- 一个简单统计时间间隔的shell脚本Demo
- 统计 cpu 内存 使用率的shell脚本代码
- shell脚本统计信息插到数据库中去
- shell脚本统计nginx访问日志access.log
- 统计python脚本中 shell命令输出文本的行数
- shell脚本统计文件的记录条数
- shell 日志统计常用脚本
- 使用shell脚本统计源码文件中的注释行数.(// , /**/)
- shell 脚本统计当前目录下普通文件个数
- shell脚本_查看网段中的存活主机和MAC地址
- Linux服务器监控SHELL脚本(自动发139邮箱)
- 一个强大的网络分析shell脚本分享(实时流量、连接统计)
- 使用shell脚本统计各个模块每个文件代码行数与总行数
- 利用shell脚本统计文件中出现次数最多的IP
- shell脚本自动测试+自动覆盖率统计+自动转PDF+自动发邮件