Perl 如何使用命令行提取电子邮件?

Perl 如何使用命令行提取电子邮件?,perl,shell,command-line,command,Perl,Shell,Command Line,Command,我正在使用以下命令从文件中提取电子邮件: perl -ne'if(/[\w\.\-\_]+@([\w\-\_]+\.)+[A-Za-z]{2,4}/g){print "$&\n"}' database.sql 要将结果打印到新文件,我需要更改什么 或者,如果您有更好的解决方案,可以通过命令行提取所有电子邮件,请发布。只需将输出重定向到如下文件: perl -ne'if(/[\w\.\-\_]+@([\w\-\_]+\.)+[A-Za-z]{2,4}/g){print "$&\n

我正在使用以下命令从文件中提取电子邮件:

perl -ne'if(/[\w\.\-\_]+@([\w\-\_]+\.)+[A-Za-z]{2,4}/g){print "$&\n"}' database.sql
要将结果打印到新文件,我需要更改什么


或者,如果您有更好的解决方案,可以通过命令行提取所有电子邮件,请发布。

只需将输出重定向到如下文件:

perl -ne'if(/[\w\.\-\_]+@([\w\-\_]+\.)+[A-Za-z]{2,4}/g){print "$&\n"}' database.sql > somefile

以下使用的选项可能会有所帮助:

perl -MEmail::Address -ne 'print "@a\n" if @a = Email::Address->parse($_)' inFile >outFile