Date: Fri, 20 Sep 1996 19:11:08 -0700 (PDT) From: "Bryan K. Ogawa" <bkogawa@primenet.com> To: Ryan Loots <ryan@donald.iafrica.com> Cc: FreeBSD questions <questions@freebsd.org> Subject: Re: egrep and Variables Message-ID: <Pine.BSI.3.94.960920185807.17201B-100000@foo.netvoyage.net> In-Reply-To: <Pine.BSF.3.95.960920145137.18308k-100000@donald.iafrica.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 20 Sep 1996, Ryan Loots wrote:
> Hi There
>
> I would like to alter my .procmailrc to allow searches for strings in
> variable names, for example:
>
> ====snip====
> LOCALDOMAINS=(blah.com|blah.co.za|blah.org.za)
>
> :0:
> *TOjsmith@$LOCALDOMAINS
> /home/jsmith/mail/personal
> ====snip====
>
> Of course, the problem with this is that egrep '$LOCALDOMAINS' looks for
> the text 'LOCALDOMAINS' after an end of line. How cute.
>
> Any suggestions on how to force the egrep that procmail spawns to search
> for variable names would be welcome. :)
I might not normally reply to this message, but I was futzing with
procmail (to move a bunch of mailing lists I'm getting, like this one, to
run on my local news server, so I can read freebsd-questions from nn
instead of pine), and came across the following:
{foo} ~ 18:49 ttyp6 > man procmailrc
PROCMAILRC(5) PROCMAILRC(5)
[snip]
A line starting with ':' marks the beginning of a recipe.
It has the following format:
:0 [flags] [ : [locallockfile] ]
<zero or more conditions (one per line)>
<exactly one action line>
Conditions start with a leading `*', everything after that
character is passed on to the internal egrep literally,
except for leading and trailing whitespace. These regular
expressions are completely compatible to the normal
egrep(1) extended regular expressions. See also Extended
regular expressions.
[snip]
Flags can be any of the following:
[...]
$ Evaluate the remainder of this condition according to
sh(1) substitution rules inside double quotes, skip
leading whitespace, then reparse it.
So... perhaps try something to the effect of:
====snip====
LOCALDOMAINS=(blah.com|blah.co.za|blah.org.za)
:0:
* $TOjsmith@$LOCALDOMAINS
/home/jsmith/mail/personal
====snip====
That's just a guess from the manual, though. Look at the man pages and
maybe there's an example somewhere. The man pages for procmailrc(5) and
procmailex(5) look helpful. The other thing is that that expression for
LOCALDOMAINS looks weird. I could be wrong, however.
>
> ____
> Ryan
> _____________________
> UUNet Internet Africa
> http://donald.iafrica.com
>
> It is the business of little minds to shrink.
> -- Carl Sandburg
>
>
bryan k ogawa <bkogawa@primenet.com> http://www.primenet.com/~bkogawa/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.94.960920185807.17201B-100000>
