电子邮件内容解析获取shell脚本上的电子邮件地址

时间:2013-08-16 08:57:53

标签: parsing shell email sed grep

in folder 
asdasdasd.msg
asdasd.msg
twadasf.msg
...
...
...

* .msg文件示例电子邮件内容=>

Date: Wed, 03 Aug 2011 11:20:59 +0300 (EEST)
From: Email Account Name =?utf-8?B?R8OcTkRPxJ5EVQ==?= <emailname@sample.com>
To: Different Email Account Name  <different@sample.com>
Subject: Re: Web Anketi
Message-ID: <d6d75689-bfde-451d-8a91-0da4d4e8921e@posta.sample.com>
In-Reply-To: <4ac9813a-4511-4530-b098-62fd23ecdb5b@posta.sample.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Originating-IP: [10.199.16.77]
....

run.sh脚本:

    for line in `sed 's/\(<\)\(.*\)\(@sample.com>\)/\2/'` *.msg
    do 
        echo $line
    done

我的问题是获取电子邮件地址列表&lt; @ sample.com&gt; ?  获取所有电子邮件地址阵列列表?*

2 个答案:

答案 0 :(得分:0)

使用bash for循环读取所有* .msg文件。 sed -n禁止输出模式的所有不匹配项。 sed命令末尾的p标志打印出替换文本。

for file in *.msg
do 
    sed -n 's/^.*\(<\)\(.*\)\(@posta.sample.com>\)/\2/p' $file
done

答案 1 :(得分:0)

谢谢男人:)

是工作代码

for file in *.msg
do 
    sed -n 's/^.*\(<\)\(.*\)\(@posta.sample.com>\)/\2/p' $file
done

如何定义ArrayList变量?