View previous topic :: View next topic
|
Author |
Message |
razesh84
New User
Joined: 05 Apr 2010 Posts: 41 Location: Kolkata,India
|
|
|
|
Hi,
I've a flat file(FB,LRECL=80) with duplicate record on key(position 1-5).
I need a output file with unique record on the key(1-5) keeping the input order of records intact.
I/P file
Code: |
AAAAA
AAAAA
AAAAA
ZZZZZ
ZZZZZ
BBBBB
BBBBB
QQQQQ
QQQQQ
CCCCC
XXXXX
XXXXX |
o/P file
Code: |
AAAAA
ZZZZZ
BBBBB
QQQQQ
CCCCC
XXXXX |
keys come in a block i.e 'AAAAA' never appears after the first 3 occurence.Same for other records.
I tried to sort it but the o/p file appears in sorted order.I need to preserve the initial order.
Any help |
|
Back to top |
|
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Here's a DFSORT job that will do what you asked for:
Code: |
//S1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file (FB/80)
//SORTOUT DD DSN=... output file (FB/80)
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD,RESTART=(1,5)))
OUTFIL INCLUDE=(81,8,ZD,EQ,1),BUILD=(1,80)
/*
|
|
|
Back to top |
|
|
razesh84
New User
Joined: 05 Apr 2010 Posts: 41 Location: Kolkata,India
|
|
|
|
That was quick sir |
|
Back to top |
|
|
Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
razesh84,
Alternatively you can use SELECT operator with FIRST and COPY to get the desired results
Code: |
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD *
AAAAA
AAAAA
AAAAA
ZZZZZ
ZZZZZ
BBBBB
BBBBB
QQQQQ
QQQQQ
CCCCC
XXXXX
XXXXX
//OUT DD SYSOUT=*
//TOOLIN DD *
SELECT FROM(IN) TO(OUT) ON(1,5,CH) FIRST USING(CTL1)
//CTL1CNTL DD *
OPTION COPY
//* |
|
|
Back to top |
|
|
razesh84
New User
Joined: 05 Apr 2010 Posts: 41 Location: Kolkata,India
|
|
|
|
Thanks Skolusu |
|
Back to top |
|
|
|