develooper Front page | perl.beginners | Postings from May 2008

Re: script for an mbox

Thread Previous
From:
Gunnar Hjalmarsson
Date:
May 10, 2008 06:49
Subject:
Re: script for an mbox
Tony Heal wrote:
> I need to remove all messages older than X from a gigabyte size mbox. Anyone 
> got a script for this?

Here is a quick-and-dirty script to start with:

     use Date::Parse;

     sub isOld {
         my $date = shift;
         my $time = str2time($date);
         my $cmptime = '1210377600';
         $time < $cmptime ? 1 : 0;
     }

     my $date_re = qr/^Date:\s*(.+)/m;

     my $msg = <>;

     while (<>) {
         if ( /^From / ) {
             my ($date) = $msg =~ $date_re;
             print $msg unless isOld($date);
             $msg = $_;
         } else {
             $msg .= $_;
         }
     }

     my ($date) = $msg =~ $date_re;
     print $msg unless isOld($date);

-- 
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl

Thread Previous


Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About