我试图编写一个perl脚本来解析目录中充满电子邮件并提取电子邮件地址和相应的名称。提取电子邮件地址和名称
现在我解析单词“From:”,然后提取行,但这是我卡住的地方。
的数据可以采用以下格式:
> From: "Smith, John" <[email protected]>
> From: John Smith <[email protected]>
> From: Frank Smith [mailto:[email protected]]=20
> From: "Smith, Frank" [mailto:[email protected]]=20
,所以我需要太格式化字符串,这样我结束了3个变量,名字,姓氏和电子邮件。
有没有更好的方法来解析文件来获取电子邮件地址和名称? 我如何处理字符串并重新排列它们,通常需要用逗号来换名称。
任何人都可以帮忙吗?
这是迄今为止我的脚本...
#!/usr/bin/perl
@files = </storage/filters/*>;
foreach $file (@files)
{
open (FILE, "$file");
while($line= <FILE>)
{
print $line if $line =~ /. From:/;
}
close FILE;
}
你看过CPAN吗?电子邮件::地址可能主要适合账单。至于名称的交换,这是微不足道的(交换)和艰难的(以确定是否需要交换 - 我不认为只有逗号可能是足够的)。另外,使用glob而不是'<...>' - 更具可读性。 – Tanktalus 2011-04-19 19:30:58
@Tanktalus电子邮件::地址是伟大的,但它不会处理乱码,如“'来自:”史密斯,弗兰克“[mailto:[email protected]] = 20';' – cnicutar 2011-04-19 19:32:56