On 6/24/2014 2:49 PM, Bob Cronin wrote:
> I want to keep only those primary stream records for which ALL the
> mail-serverN names listed on that record are found in the secondary stream.

So, you want to discard records for which ANY name is NOT found.  SPLIT
the names, LOOKUP to find the bad ones, and PREDSELECT to toss the bad
record.  Feed another copy of the original to input 2 of PREDSELECT to
trigger the good records to go to output 1.

(end /) ... | dup: fanout | notfound: predselect | ... (bad recs here)
  / dup: | not chop blank | split | found: lookup
  / ... (server list here) | found: | notfound: | ... (good recs here)
  / dup: | notfound:

If this is something that'll be running forever and you're being extra
picky about performance, you can use the primary output of CHOP 0 to
avoid the cost of the extra copy from FANOUT:

(end /) ... | next: not chop 0 | dup: fanout | notfound: predselect
  | ... (bad recs here)
  / dup: | not chop blank | split | found: lookup
  / ... (server list here) | found: | notfound: | ... (good recs here)
  / next: | strliteral append | notfound:

¬R

Reply via email to