Scot Robnett wrote:
> I have a delimited file that is formatted like this:
> 
>       Altech|[EMAIL PROTECTED]:[EMAIL PROTECTED] Specialties Steel Corp.
>       |[EMAIL PROTECTED] Specialty Steel Corp.
> 
> > [EMAIL PROTECTED]|[EMAIL PROTECTED]:[EMAIL PROTECTED]
> burton.com*
>       Starwood|[EMAIL PROTECTED]
> foods|[EMAIL PROTECTED]:[EMAIL PROTECTED]
>       starwood|[EMAIL PROTECTED]:[EMAIL PROTECTED]
>       Authentic Fitness Corp.|[EMAIL PROTECTED]
> 
> 
> Basically that's one continuous line; there are no line breaks. Don't
> ask me, I just inherited the file. The records are delimited by * and
> then each individual record is split as company/email by a pipe |
> character. If more than one person wants to track a particular
> company, their e-mail address is appended to the first with a colon
> and split on same for processing.

Here's a simple example that splits each record out, removes an address, and
spits the file back out

   #!/usr/bin/perl
   use strict;

   $/='*';                              # input lines delimited by '*'
   while (<>) {
       chomp;                           # strip the trailing '*'
       my ($comp, $addr) = split /\|/;
       my @addr = split /:/, $addr;

        # now you can adjust the @addr list to add or remove addresses
       # for example, remove addresses containing 'mrbill.com'
       @addr = grep !/mrbill\.com/, @addr;

       # put everything back together and print it out
       print join('|', $comp, join(':', @addr)), $/;
   }

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to