7

受信トレイを bash コマンドで個別のファイル (メッセージごとに 1 ファイル) に分割したい、または Java の単純なプログラムである可能性があります。どうすればいいですか?

WBRさん、ありがとう。

4

2 に答える 2

10

を使用するだけformailです。formailメールボックスを処理したり、メールボックス内のメッセージごとにいくつかのアクションを実行したり、メッセージを分離したりできるプログラムです。

詳細: http: //www.manpagez.com/man/1/formail/

メールボックスを分割してファイルを分割したい場合は、次のような解決策をお勧めします。

$ cat $MAIL | formail -ds sh -c 'cat > msg.$FILENO'

男から:

   FILENO
        While splitting, formail  assigns  the  message  number  currently
        being  output  to  this  variable.   By presetting FILENO, you can
        change the initial message number being used and the width of  the
        zero-padded  output.   If  FILENO is unset it will default to 000.
        If FILENO is non-empty and does not contain a number, FILENO  gen-
        eration is disabled.
于 2012-07-01T13:17:19.653 に答える
5

formail がない場合は、この Perl oneliner を使用することもできます (ここからコピーし、分割する必要のある Thunderbird Inbox でテストしただけです)。

perl -pe 'open STDOUT, ">out".++$n if /^From /' < $IN > before_first

または、数字を 0 で埋めるには:

perl -pe 'open STDOUT, sprintf(">m%05d.mbx", ++$n) if /^From /' < $IN > before-first
于 2012-10-03T16:36:43.597 に答える