UNIX SHELL PROG. & ELM QUESTIONS

Robert Felps felps at convex.com
Mon May 13 22:50:11 AEST 1991


In <1991May10.064610.25802 at starnet.uucp> moe at starnet.uucp (Moe S.) writes:

>I appreciate any help on these questions:

>1. If I have a large (500+ messages) in a mailbox-format file,
>   what is the best way to mail a file to everyone of the 500+? 
>   (using elm or any other way).

Sounds like your #2 questions is will answer this. Strip the addresses
out then send the message to them. The problem is the limit of 550+
addresses by most mailers. I'd try writing a script to strip the
addresses put them in a file, split the file, then feed the files
as arguments to ucb/mail with a -s "subject" argument too.

>2. If I have a file containing some names and email addresses such as
>   this: 
>	
>	      xyz at jkjk.jkyu.reyui (John J. Doe)
>	      Mark L. Lost <apple!mark at eee.dfsjk.jkj>
>	      Joe!!! jjj at jhdf.434r.er

>  (Such a file can be obtained by doing
>	grep "^From:" mailbox_file )

>  How can I re-organize the file (using awk, sed, etc...) so that
>  the email addresses are the first field in every line in the file? 
>  Note that all addresses will contain at least one of the two
>  characters: "@" or "!".
>  Let's say the file is too big to make manual editing practical.

Hmmm. I noticed others posted suggestions of PERL or icon. I don't see
this as much a language question as I do a standard format and the
unexpected non-conformance to that standard. Someone touched on this with
the reference to the RFC. Here's is quick shot that gets a large percentage
of the addresses but it doesn't handle all of the off the wall cases.
for example, I ran it through my $MAIL file and had a blank line in the
output. When I looked at what caused it I had a message with the line,

From: Roger Rabbit is expecting to see you later today.....

from a wonderful secretary that could care less if the mailer uses the
From: header. So those are going to be difficult to message out or catch.

Here's the code, unfortunately it uses nawk because of the Field Separator:

--------------------------------- cut here ----------------------------------
nawk 'BEGIN {
FS="[   ()<>:]"   # space, tab, left/right paren, left/rigth angles, colon
}
/^F[rR][oO][mM]:/  {
  for ( i = 1; i <= NF; i++ ) {
    if ( index($i,"@") ) {
      print $i
      break
    }
    else if ( index($i,"!") ) {
      print $i
      break
    }
  }
#  print "i="i "   NF="NF
#  print
  if ( i > NF )
    if ( length($2) )
      print $2
    else
      print $3
}' $MAIL
--------------------------------- cut here ----------------------------------

If you don't have nawk and you don't know awk send me mail and I'll convert
it to awk (old awk).

>Thanks again.

>Moe

Hope it helps,
Robert Felps            I do not speak for  felps at convex.com
Convex Computer Corp    Convex and I seldom Product Specialist
3000 Waterview Parkway  speak for myself.   Tech. Assistant Ctr
Richardson, Tx.  75080  VMS? What's that?   1(800) 952-0379



More information about the Comp.unix.programmer mailing list