1メール1テキストファイルとして、メールファイルのあるディレクトリで
$ perl -0777 -ne 'split(/\n\n/, $_);print $ARGV . "\n" if ($_[0] =~ /\nFrom: (.+?)\n[A-Z]/ism and $1 =~ /hoge@foo\.bar/ism)' *
を実行すると、From: に hoge@foo.bar を含むファイル名が出力される。
perlコマンドのオプション「-0777」は、標準入力からのデータを改行で分割して読み込まない。
split(/\n\n/, $_);
は、標準入力から一気に読み込んだデータを空行で分割して無名配列に格納している。
その最初の要素がメールヘッダーになる。
正規表現は、From: が複数行になる場合を考慮。
0 件のコメント:
コメントを投稿