What would be cool is a regex pattern engine that DFSORT can invoke. So, once the tiny detail of invoking the Java class using a (new, perhaps) Enn exit is resolved, DFSORT will have regex support. :grin:
Nagesh On Wed, May 30, 2012 at 3:27 AM, Frank Yaeger <[email protected]> wrote: > Hmmm ... seems to be some problem posting from Lotus Notes here today. > So I'm trying again from the archives. > > Note: I'm not unretired today - I don't retire until Thursday. :-) > > Assuming ** will only appear as the last node, and * will never > appear as the first node, I think the DFSORT JOINKEYS job below > will give you the output you want. I set it up to do a maximum > of 8 nodes, but if it does what you want, it can be extended to > do more nodes. > > I tested it with various patterns and dsnames I made up. > I assumed I understood which dsnames you would want to > include, but my understanding of the rules could be > wrong. If you find a pattern/dsname pair that doesn't > work, let me know what it is and what the rules are. > > //S1 EXEC PGM=SORT > //SYSOUT DD SYSOUT=* > //IN1 DD DSN=... pattern file (e.g. xxx.yyy.*.zzz.**) > //IN2 DD DSN=... dsnames file (e.g. xxx.yyy.a.zzz.q.r) > //SORTOUT DD DSN=... output file > //SYSIN DD * > JOINKEYS F1=IN1,FIELDS=(101,8,A) > JOINKEYS F2=IN2,FIELDS=(101,8,A) > REFORMAT FIELDS=(F2:1,44,F1:201,8,F1:101,64,F2:101,64) > INREC IFTHEN=(WHEN=(53,8,CH,EQ,117,8,CH),OVERLAY=(45:C'1'), > HIT=NEXT), > IFTHEN=(WHEN=(46,1,CH,EQ,C'0',AND, > 61,8,CH,EQ,125,8,CH),OVERLAY=(46:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(47,1,CH,EQ,C'0',AND, > 69,8,CH,EQ,133,8,CH),OVERLAY=(47:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(48,1,CH,EQ,C'0',AND, > 77,8,CH,EQ,141,8,CH),OVERLAY=(48:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(49,1,CH,EQ,C'0',AND, > 85,8,CH,EQ,149,8,CH),OVERLAY=(49:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(50,1,CH,EQ,C'0',AND, > 93,8,CH,EQ,157,8,CH),OVERLAY=(50:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(51,1,CH,EQ,C'0',AND, > 101,8,CH,EQ,165,8,CH),OVERLAY=(51:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(52,1,CH,EQ,C'0',AND, > 109,8,CH,EQ,173,8,CH),OVERLAY=(52:C'1')) > SORT FIELDS=(1,44,CH,A,45,8,CH,A),EQUALS > SUM FIELDS=NONE > OUTFIL INCLUDE=(45,8,CH,EQ,C'11111111'),BUILD=(1,44) > //JNF1CNTL DD * > INREC IFTHEN=(WHEN=INIT, > PARSE=(%01=(ENDBEFR=C'.',FIXLEN=8), > %02=(ENDBEFR=C'.',FIXLEN=8), > %03=(ENDBEFR=C'.',FIXLEN=8), > %04=(ENDBEFR=C'.',FIXLEN=8), > %05=(ENDBEFR=C'.',FIXLEN=8), > %06=(ENDBEFR=C'.',FIXLEN=8), > %07=(ENDBEFR=C'.',FIXLEN=8), > %08=(ENDBEFR=C'.',FIXLEN=8)), > OVERLAY=(101:%01,%02,%03,%04,%05,%06,%07,%08,201:8C'0')), > IFTHEN=(WHEN=(109,2,CH,EQ,C'* '),OVERLAY=(202:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(117,2,CH,EQ,C'* '),OVERLAY=(203:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(125,2,CH,EQ,C'* '),OVERLAY=(204:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(133,2,CH,EQ,C'* '),OVERLAY=(205:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(141,2,CH,EQ,C'* '),OVERLAY=(206:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(149,2,CH,EQ,C'* '),OVERLAY=(207:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(157,2,CH,EQ,C'* '),OVERLAY=(208:C'1'),HIT=NEXT), > IFTHEN=(WHEN=(109,2,CH,EQ,C'**'),OVERLAY=(202:7C'1')), > IFTHEN=(WHEN=(117,2,CH,EQ,C'**'),OVERLAY=(203:6C'1')), > IFTHEN=(WHEN=(125,2,CH,EQ,C'**'),OVERLAY=(204:5C'1')), > IFTHEN=(WHEN=(133,2,CH,EQ,C'**'),OVERLAY=(205:4C'1')), > IFTHEN=(WHEN=(141,2,CH,EQ,C'**'),OVERLAY=(206:3C'1')), > IFTHEN=(WHEN=(149,2,CH,EQ,C'**'),OVERLAY=(207:2C'1')), > IFTHEN=(WHEN=(157,2,CH,EQ,C'**'),OVERLAY=(208:C'1')) > //JNF2CNTL DD * > INREC IFTHEN=(WHEN=INIT, > PARSE=(%01=(ENDBEFR=C'.',FIXLEN=8), > %02=(ENDBEFR=C'.',FIXLEN=8), > %03=(ENDBEFR=C'.',FIXLEN=8), > %04=(ENDBEFR=C'.',FIXLEN=8), > %05=(ENDBEFR=C'.',FIXLEN=8), > %06=(ENDBEFR=C'.',FIXLEN=8), > %07=(ENDBEFR=C'.',FIXLEN=8), > %08=(ENDBEFR=C'.',FIXLEN=8)), > OVERLAY=(101:%01,%02,%03,%04,%05,%06,%07,%08)) > /* > > Frank Yaeger - DFSORT Development Team (IBM) - [email protected] > Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration > => DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN

