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) - yae...@us.ibm.com 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 lists...@bama.ua.edu with the message: INFO IBM-MAIN