码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:awk 三剑客

【问题描述】

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

<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等)

标签:awk 三剑客

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!