Solo usa formail
. formail
es un programa que puede procesar el buzón, ejecutar algunas acciones para cada mensaje en el buzón, separar mensajes, etc.
Más información:http://www.manpagez.com/man/1/formail/
Si solo desea dividir un buzón para separar archivos, sugeriría esta solución:
$ cat $MAIL | formail -ds sh -c 'cat > msg.$FILENO'
Del hombre:
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
) también puede hacer esto. Por ejemplo,
wget ftp://lists.gnu.org/bug-tar/2014-09
git mailsplit -o. 2014-09
Si no tiene formail, también puede usar este oneliner de Perl (copiado de aquí y probado en una bandeja de entrada de Thunderbird que necesitaba dividir)
perl -pe 'open STDOUT, ">out".++$n if /^From /' < $IN > before_first
o, para tener números con 0:
perl -pe 'open STDOUT, sprintf(">m%05d.mbx", ++$n) if /^From /' < $IN > before-first