Use CHOP 30|COPY|SPLIT|WILDCARD and JUXTAPOSE to prefix the remainder of
the record by each word.  It should be pretty easy to adapt WILDCARD to
serach for the keyword, as you suggest.  You'll have to do a bit of
contortion to get the topology just right.

I'm sure Rob can elaborate and also get the juxtapose timing just right,
perhaps to reverse the record and then CHOP -30.

You need to make up your mind as to whether you want the original record
or just the bytes beyond column 30, or something else indeed.

On 10/31/2018 03:17 PM, Stanislawski, Shawn (National VM Capability) wrote:
Want to filter a stream of records, letting only certain ones through based on 
a keyword in each record.
What we know:
-the keyword could be anywhere in the first 30 characters
-the keyword is space delineated (no leading space if keyword is first word)
-the first and last part of that keyword
-the count of unknown characters separating  the first and last parts of the 
keyword

For an example:
Within the first 30 characters of the record is the keyword : 'HCP??????E ' , 
with exactly 6 unknown characters (no blanks) between 'HCP' and 'E '.

I know XEDIT's LOCATE can perform a similar search via the arbitrary character 
option 'SET ARBCHAR ON ?'.
I know PIPE's FIND can do this with blanks, but only if the keyword begins in 
column 1. (Or a static column (not a range) using ZONE.)

Aside from creating a sipping stage/custom filter, is there any provision for 
performing natively in PIPE such an action as this?

--Shawn S.

Reply via email to