Delimiters in COBOL, UNIX, JCL: How to Handle them

PART-1: How to Work With Delimiter in COBOL

PIPE delimited file we can achieve through MVS record structure, See, the example below

01 INPUT_REC1
05 FIRST-ONE         PIC X(2)
05 SECOND-ONE        PIC X(2) VALUE "||"
.
.
.

The above way, we can construct a record. Similarly we can use UNSTRING in COBOL to delimit the PIPE symbol, and we will get sequential data set.

PART-2: How to Work With Delimiter in JCL

The second best example is we frequently use PIPE concept with SPLIT in DFSORT

//EXAMP JOB A400,PROGRAMMER
//RUNSORT EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=H
//SORTIN DD DSN=INPUT.PIPE,SUBSYS=PIPE,
//          DCB=(LRECL=60,RECFM=FB,BLKSIZE=32760)
//OUT1   DD DSN=OUTPUT.PIPE1,SUBSYS=PIPE,
//          DCB=(LRECL=60,RECFM=FB,BLKSIZE=32760)
//OUT2   DD DSN=OUTPUT.PIPE2,SUBSYS=PIPE,
//          DCB=(LRECL=60,RECFM=FB,BLKSIZE=32760)
//SYSIN  DD *
  OPTION DYNALLOC,FILSZ=U1000000
  SORT FIELDS=(1,20,CH,A,25,4,BI,A)
  OUTFIL FNAMES=(OUT1,OUT2),SPLIT
/*

Here, SUBSYS=PIPE, will allocates input file into PIPE system.
OUTFIL FNAMES=(OUT1,OUT2),SPLIT ==> This command writes input file into two output files.

PART-3: How to Work With Delimiter in UNIX

 The PIPE symbol will be used in UNIX, to separate each command in UNIX. Let us execute the batch job using BPXBTACH utility.

//STEPN  EXEC  PGM=BPXBTACH,PARM = ‘SH ls –a | tail +3 | nl'
//SYSOUT DD SYSOUT=*

Here, in the list of records, it filters the top three records and shows line numbers.

Related Posts

Discover more from Srinimf

Subscribe now to keep reading and get access to the full archive.

Continue reading