Súbor: [Platon] / scripts / shell / mail2file / mail2file.sh (stiahnutie)
Revízia 1.3, Tue Feb 12 00:34:26 2002 UTC (23 years, 3 months ago) by jombik9
Zmeny od 1.2: +3 -4
[lines]
Sync.
New shell scripts.
CVS tags inprovements.
Extended pipelining merging and code stabilization.
|
#!/bin/bash
#use strict;
# huh, toto nie je Perl?! a jak mam potom hekovat bez Perlu, ha? :)
# mail2file.sh - bash-ovsky script pouzivajuci Perl
#
# $Id: mail2file.sh,v 1.3 2002/02/12 00:34:26 jombik9 Exp $
#
# Skript ocakava na vstupe e-mailovu spravu a ulozi ju do suboru, ktory
# bude mat tvar 'YY-MM-DD.[hh:mm:ss]'. Teda napriklad: 01-01-27.[22:21:30]
# Nazov suboru (datum) sa nastavuje podla hlavicky 'Date:' e-mailovej spravy.
#
# Optimalne pouzitie je s programom formail:
# cat mailbox | formail -s ./mail2file.sh
# Po tomto budete mat v aktualnom adresari za kazdy jeden e-mail z mailbox-u
# jeden subor, ktoreho obsahom bude prave ten mail a nazov bude zodpovedat
# sekcii 'Date:' toho e-mailu.
#
# (c) 2001-2002 Ondrej Jombik <nepto@pobox.sk>
# Especially dedicated to my love, Yuyanka. :)
#
# Updates:
# 29/01/2001 - initial release
# 03/02/2002 - import to CVS
# Prefix for temporary filename(s).
tmpfname="tmp-mail2file-X";
##############################################################################
# Creating the unique filename for temporaring storage.
while [ -e $tmpfname ]; do
tmpfname=$tmpfname"x";
done;
# Writing everythig to temporary file.
tee $tmpfname > /dev/null;
newfname=`cat $tmpfname | egrep '^Date: .+' | \
perl -e ' \
while (<STDIN>) { \
s/^Date:([ ].+,|)[ ](\d+)[ ]([^ ]+)[ ](\d+)[ ](\d+):(\d+):(\d+)[ ].*$/\
$4-$3-0$2.[$5:$6:$7]/; \
s/^[ \t]*\d*(\d\d[-][^ ]+[-])\d*(\d\d\..+)$/$1$2/; \
s/^(\d+)-Jan-(.+)$/$1-01-$2/; \
s/^(\d+)-Feb-(.+)$/$1-02-$2/; \
s/^(\d+)-Mar-(.+)$/$1-03-$2/; \
s/^(\d+)-Apr-(.+)$/$1-04-$2/; \
s/^(\d+)-May-(.+)$/$1-05-$2/; \
s/^(\d+)-Jun-(.+)$/$1-06-$2/; \
s/^(\d+)-Jul-(.+)$/$1-07-$2/; \
s/^(\d+)-Aug-(.+)$/$1-08-$2/; \
s/^(\d+)-Sep-(.+)$/$1-09-$2/; \
s/^(\d+)-Oct-(.+)$/$1-10-$2/; \
s/^(\d+)-Nov-(.+)$/$1-11-$2/; \
s/^(\d+)-Dec-(.+)$/$1-12-$2/; \
if ($_ ne "") { \
print $_; \
last; \
} \
} \
while(<STDIN>) { } \
'`;
if [ -z $newfname ]; then
echo "WARNING: No 'Date:' section found. Leaving mail in temporary file.";
else
while [ -e $newfname ]; do
newfname=$newfname"x";
done;
echo "Creating '$newfname'.";
mv $tmpfname $newfname;
fi
Platon Group <platon@platon.sk> http://platon.sk/
|