私は大きなメールボックスを持っており、Thunderbirdを使用しています。つまり、ファイルが複数あるという意味ですmbox
。これらの個々のファイルには、特定のフォルダ内のすべての電子メールが含まれています。今、特定のフォルダから送信者のいくつかのデータを取得したいと思います。私の理想的な統計は、すべての一意の送信者とそのフォルダに送信者の電子メールが何度もあることを確認することです。エッジ:
- ゾーンA:10倍
- マリアB:5倍
など。
私はいくつかのオプションを試しましたが、grep
「From:」をgrepするとXヘッダーも表示され、他のヘッダーを除外する方法がわかりません。コマンドラインでこれを行うことができるかどうかを知っている人はいますか?
答え1
まず、ヘッダーを確実に取得する必要がありFrom
、これは制限的なgrep正規表現を使用して実行できます。
% grep --no-filename --ignore-case '^From:' test.eml
From: [email protected]
次に、発生回数を計算する必要があります。これは次のように行うことができます。uniq -c
(ソートされたリストが必要です)。
% grep --no-filename --ignore-case '^From:' *.eml | sort | uniq --count
1 From: [email protected]
3 From: [email protected]
その後、最も頻繁な項目が一番上に表示されるように、出力を発生回数で並べ替えることができます。
% grep --no-filename --ignore-case '^From:' *.eml | sort | uniq --count | sort --general-numeric-sort --reverse
3 From: [email protected]
1 From: [email protected]