首页 > 其他 > 详细

awk之提取联系人邮箱(用到for循环、gensub等)

时间:2015-12-17 22:40:33      阅读:1509      评论:0      收藏:0      [点我收藏+]

【问题描述】

从以下文件中提取联系人邮箱地址,内容如下:

<yongbo.shan@mm.com>, 李俊清 <junqing.li@mm.com>, 任翔 <xiang.ren@mm.com>, 李杨柳 <yangliu.li@mm.com>, 孟津 <jin.meng@mm.com>, 王立光 <liguang.wang@mm.com>

【解决办法】

1.awk

$awk ‘{for(i=1;i<=NF;i++) if($i ~ "<" ) {print gensub(/<(.+)>.*/,"\\1","g",$i)} }‘ a.txt 
yongbo.shan@mm.com
junqing.li@mm.com
xiang.ren@mm.com
yangliu.li@mm.com
jin.meng@mm.com
liguang.wang@mm.com
$awk ‘{for(i=1;i<=NF;i++) if($i ~ "<" ) {print $i} }‘ a.txt |awk -F ‘<|>‘ ‘{print $2}‘
yongbo.shan@mm.com
junqing.li@mm.com
xiang.ren@mm.com
yangliu.li@mm.com
jin.meng@mm.com
liguang.wang@mm.com

2.sed与awk结合

$sed -r ‘s#,##g‘ a.txt |tr ">" "\n" |awk -F ‘<‘ ‘{print $NF}‘ |sed ‘/^\s*$/d‘
yongbo.shan@mm.com
junqing.li@mm.com
xiang.ren@mm.com
yangliu.li@mm.com
jin.meng@mm.com
liguang.wang@mm.com

sed ‘/^\s*$/d‘删除空行

3.grep

$grep -oP ‘(?<=<)(.*?)(?=>)‘ a.txt 
yongbo.shan@mm.com
junqing.li@mm.com
xiang.ren@mm.com
yangliu.li@mm.com
jin.meng@mm.com
liguang.wang@mm.com


awk之提取联系人邮箱(用到for循环、gensub等)

原文:http://xoyabc.blog.51cto.com/7401264/1725784

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!