srinathds83
New User
Joined: 17 Jul 2007 Posts: 41 Location: pune
|
|
|
|
Hello,
I have a file which i want to copy to new file based on a condition.
i'm try to illustrate with an example lets say that i have a file of length 20 bytes, i should start copying the file to output file sequentially, when the input value in the first 5 byts is 12345 then i should skip 3 records form that line. copy form the 4th record from there.
Input file:
abcde abcdefghijklm1
abcde abcdefghijklm2
12345 dfdfsdfdfd
sdfdsds
dsfdsfdf
abcde abcdefghijklm3
abcde abcdefghijklm4
abcde abcdefghijklm5
abcde abcdefghijklm6
12345 dfdfsdfdfd
sdfdsds
dsfdsfdf
abcde abcdefghijklm7
abcde abcdefghijklm9
abcde abcdefghijklm9
output file:
abcde abcdefghijklm1
abcde abcdefghijklm2
abcde abcdefghijklm3
abcde abcdefghijklm4
abcde abcdefghijklm5
abcde abcdefghijklm6
abcde abcdefghijklm7
abcde abcdefghijklm9
abcde abcdefghijklm9
Can we achive this using sort ?
Thanks in Advance!!!!
Srinath D |
|
Escapa
Senior Member
Joined: 16 Feb 2007 Posts: 1399 Location: IL, USA
|
|
|
|
Hi Srinath, Below SORTSTEP will give you desired result.
Input:
Code: |
ABCDE ABCDEFGHIJKLM1
ABCDE ABCDEFGHIJKLM2
12345 DFDFSDFDFD
SDFDSDS
DSFDSFDF
ABCDE ABCDEFGHIJKLM3
ABCDE ABCDEFGHIJKLM4
ABCDE ABCDEFGHIJKLM5
ABCDE ABCDEFGHIJKLM6
12345 DFDFSDFDFD
SDFDSDS
DSFDSFDF
ABCDE ABCDEFGHIJKLM7
ABCDE ABCDEFGHIJKLM9
ABCDE ABCDEFGHIJKLM9 |
SORTSTEP:
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=yourinputfilehere,LRECL=20
//SORTOUT DD DSN=youroutputfilehere,LRECL=20
//SYSIN DD *
OPTION COPY,EQUALS
INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,5,CH,EQ,C'12345'),
RECORDS=3,PUSH=(21:SEQ=1))
OUTFIL INCLUDE=(21,1,CH,EQ,C' '),BUILD=(1,20)
/* |
Output:
Code: |
ABCDE ABCDEFGHIJKLM1
ABCDE ABCDEFGHIJKLM2
ABCDE ABCDEFGHIJKLM3
ABCDE ABCDEFGHIJKLM4
ABCDE ABCDEFGHIJKLM5
ABCDE ABCDEFGHIJKLM6
ABCDE ABCDEFGHIJKLM7
ABCDE ABCDEFGHIJKLM9
ABCDE ABCDEFGHIJKLM9
|
|
|