Exclui um intervalo de mensagens de e-mail usando o comando 'mail'

7

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

Estou no Solaris 8 e tenho apenas mail disponível, sem pine ou mutt ou cliente baseado em "UI" semelhante.

A ajuda inline e a página de manual só dão d # para excluir um email específico. Eu tentei por exemplo d 1 - 100 mas sem sorte. E não estou com vontade de fazer d 1000 vezes.

Alguma ideia de como limpar esta caixa de entrada? Eu realmente gostaria de limpar todos os e-mails com mais de x dias.

    
por GWu 11.08.2012 / 17:38

3 respostas

14

Embora mail possa não conseguir e você não tenha pine ou mutt , provavelmente faça ter mailx . E mailx pode d 5-10 ou d * .

    
por 11.08.2012 / 20:05
2

Se você quiser executar um d 1 a d 100 , poderá gerar essa sequência de comandos e enviá-la diretamente para mail :

i=1; while [ $i -le 100 ]; do echo d $i; i=$(($i+1)); done | mail
    
por 12.08.2012 / 07:00
2

O seguinte ajudará você a ler os e-mails durante 1 segundo, excluir o e-mail e passar para o próximo. Se todas as mensagens tiverem sido excluídas, o loop será interrompido.

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

while (echo dq |mail) do sleep 1 ;done
    
por 30.04.2013 / 15:25