26-04
2010

Tips: Trier ses mails en Bash en fonction d'une expression

Tags: Bash | Email | For | Grep
Si vous souhaitez trier vos mails, en bash, en fonction d'une expression, ou d'un header, vous pouvez le faire plutôt simplement, en bash. Dans mon cas, il s'agit de trier les mails que je reçois sur une adresse pour différentes mailing list, afin de me faire des archives et de pouvoir, ainsi, créer des dossiers. Je suis abonné à la liste HAProxy, ainsi qu'à plusieurs listes OVH, je souhaite trier les deux dans 2 dossiers différents. La liste HAProxy est identifiable par un champ CC, la liste OVH est identifiable par un champ To. Voici le petit script (en version développé pour commencer)
DIR=/var/spool/vmail/admin-serv.net/ml/cur/;
for files in `ls $DIR`;
do
M=`cat "$DIR$files" | grep "Cc: haproxy@formilux.org"`;
if [[ $M != '' ]];
then
mv $DIR$files /home/mailing_archive/haproxy/ ;
fi;
done;
Soit, en une ligne :
DIR=/var/spool/vmail/admin-serv.net/ml/cur/;for files in `ls $DIR`;do M=`cat "$DIR$files" | grep "Cc: haproxy@formilux.org"`;if [[ $M != '' ]];then mv $DIR$files /home/mailing_archive/haproxy/ ;fi;done;
Voilà, le tour est joué, à vous d'adapter en fonction de ce que vous souhaitez rechercher.

 

 

Aucun commentaire pour ce billet.

 

Votre commentaire