In the following sort example, i am trying to insert spaces and insert fixed string in the input file and format the output record.
Since , we are trying to build the record, ie, manipulate the entire record structure here and there, we will go with OUTREC BUILD option. This gives us complete control over the record structure. We can pick up any record from any position and place it anywhere as per the requirement.
Here goes my input file.
----+----1----+----2----+----3----+-SORT JCL
********************************* To
A001MUKESHN
A002GRECHEN
A003STEVEEN
A003STEVEEN
A004STEVEEN
A004STEVEEN
******************************** Bottom
//STEP0010 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTWK01 DD UNIT=DISK,SPACE=(CYL,(100,100))
//SORTIN DD DSN=BHI522.SORT.TEST1,DISP=SHR
//SORTOUT DD DSN=BHI5122.TEST.SORT.OP3,
// DISP=(,CATLG),UNIT=TEST,
// SPACE=(CYL,(50,50),RLSE)
//SYSIN DD *
SORT FIELDS=COPY
OUTREC BUILD=(1:1,4,5:2X,8:C'TST',13:5,7)
//*
Output:
----+----1----+----2----+----3----+----4----+----5----+--
********************************* Top of Data ***********
A001 TST MUKESHN
A002 TST GRECHEN
A003 TST STEVEEN
A003 TST STEVEEN
A004 TST STEVEEN
A004 TST STEVEEN
******************************** Bottom of Data *********
As we see here, OUTREC parameter, '1:1,4' tells sort to :Take record of length 4 bytes starting from 1st column and place it in 1st column of the output file.
5:2X will put 2 byte of spaces. X indicate spaces to be included. When we use 3X, that means 3 spaces to be put.
8:C'TST' will tell sort to put the string 'TST' from 8th byte of the output record.
13:5,7 Will instruct sort to: Take the record of length 7 bytes from 5th column of the input file and put from 13th column in the output file.
Now match the output, and we can see the result!
A Point to remember : For INREC and OUTREC we can use FIELDS or BUILD. For OUTFIL , we can use OUTREC or BUILD
2. Get the HEX Values using SORT
Using the Same input file, will use the OUTFIL OUTREC command to print the hex values
............... same as above JCL......
SORT FIELDS=COPY
OUTFIL OUTREC=(1:1,4,TRAN=HEX) //*
Output will look like:
----+----1--Will keep updating ........
************
C1F0F0F1
C1F0F0F2
C1F0F0F3
C1F0F0F3
C1F0F0F4
C1F0F0F4
************