GNU/Linux >> Linux の 問題 >  >> Linux

メールボックスをメッセージごとに 1 つのファイルに分割する方法は?

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.

Git (git mailsplit ) も同様に実行できます。たとえば、

wget ftp://lists.gnu.org/bug-tar/2014-09
git mailsplit -o. 2014-09

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

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

Linux
  1. Linuxでルートメール(メールボックス)ファイルを削除する方法

  2. maildir 内の単一のファイルを読み取るにはどうすればよいですか?

  3. dmesg コンテンツをファイルに記録するにはどうすればよいですか?

  1. 行に基づいて単一のファイルを複数のファイルに分割する方法

  2. 特定のファイルを1つのファイルに連結しますか?

  3. 別のファイルに書き込む方法は?

  1. 単一のPDFとして保存された本を章ごとに1つのPDFに分割するツール?

  2. Linux で「split」コマンドを使用して iso またはファイルを分割する方法

  3. 単一のファイルを RSYNC するには?