#!/usr/bin/env perl # # grep-mbox - selects items from a Unix mailbox # # $Id$ use strict; use warnings; use Getopt::Std; my %opt; getopt( 'e:h:', \%opt ); die("Usage: $0 [-e pattern] [file ...]\n") if defined $opt{h}; $opt{e} =~ s|/|\\\/|g if defined $opt{e}; $opt{e} = '.' if !defined $opt{e}; my @brgv = grep { -T } @ARGV; die("None of the arguments is a regular text file\n") if ( @ARGV && !@brgv ); @ARGV = @brgv; undef $/; while (<>) { if (/^From /) { grep { /$opt{e}/ and print } split( /(?<=\n)(?=From )/, $_ ); } }