1

mbox 形式の大きなメールボックスがあります。それはすべての記事であるため、ヘッダー情報は関連性がありません (日付を除く)。

私が望むのは、大きな *.mbx ファイルを取得して、ファイル名が各電子メールの件名で、すべてのヘッダーが削除されたテキスト ファイルを生成することです。

AWK は正規表現でこれを行うことができると思いますが、この種のことは私の専門分野ではありません (どちらかというと GUI の人です)。

少ないディスク容量でファイルをハード ドライブに保存し、最終的には Google デスクトップ サーチでインデックスを作成できるようになることを願っています。

どんな助けでも感謝します。

4

1 に答える 1

1

ここで重要なのは、レコード区切り変数を空の文字列に設定することです。これにより、ファイルが「段落」モードで読み取られます。

awk -v RS="" '
    /^From / {
        # this $0 contains the email headers, grab the subject
        subject = "no subject"
        split($0, headers, /\n/)
        for (idx in headers)
            if (headers[idx] ~ /^Subject: /) {
                subject = headers[idx]
                sub(/^Subject: /, "", subject)
            }

        next
    }
    { print > subject}
' large.mbox

同じ件名のメールがある場合、メッセージ本文は1つのファイルに連結されます。

これにより、ディスク使用量が大幅に節約されるとは思いません。ヘッダーを削除しますが、必要なディスクブロックの数を増やします。

于 2012-03-21T18:21:14.293 に答える