Exclua um intervalo de mensagens de email usando o comando 'mail'

10

Eu tenho cerca de 1k + e-mails em uma caixa de entrada (stdout cronjob antigo). Como os excluo em massa?

Estou no Solaris 8 e só tenho maildisponível, nenhum pineou nenhum muttcliente baseado em "UI" semelhante.

A ajuda embutida e a página de manual fornecem apenas d #para excluir um email específico. Eu tentei por exemplo, d 1 - 100mas sem sorte. E não tenho vontade de fazer dmil vezes.

Alguma idéia de como limpar esta caixa de entrada? Na verdade, eu gostaria de limpar todos os e-mails com mais de x dias.

GWu
fonte

Respostas:

17

Embora mailnão pode ser capaz de, e você não tem pineou muttvocê provavelmente não tem mailx. E mailxpode d 5-10ou d *.

bahamat
fonte
2

Se você deseja executar uma d 1passagem d 100, pode gerar essa sequência de comandos e canalizá-la diretamente para mail:

i=1; while [ $i -le 100 ]; do echo d $i; i=$(($i+1)); done | mail
Jim Paris
fonte
Não tenho Solaris aqui para verificar. Se você executar d 1, renumerará os emails subsequentes? Nesse caso, é necessário fazer um loop para trás ou executar d 1100 vezes.
Gilles 'SO- stop be evil'
2

O seguinte ajudará você a ler os e-mails durante 1 segundo, excluir o e-mail e passar para o próximo. Se todos os e-mails foram excluídos, o loop será interrompido.

Quer mais tempo? Mude o sono para 2 ou mais. Quer mais rápido? Substitua suspensão 1 por um comando fictício.

while (echo dq |mail) do sleep 1 ;done
Geert
fonte