Fileaid
//*
//*
//* FILEAID TO DROP LINES
//* IN: SEQ
//* OUT: SEQ
//* COPY A FILE BUT DROP LINES WITH A 1 IN POSITION 1
//* OR MINUTES EXECUTION TIME ANYWHERE ON THE LINE
//FILEAI1 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD *
1 DROP THIS RECORD
X DON'T DROP THIS ONE
Z MINUTES EXECUTION TIME WILL BE DROPPED
/*
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 DROP OUT=0,
IF=(01,EQ,C'1'),
ORIF=(01,00,C'MINUTES EXECUTION TIME')
/*
//*
//* FILEAID TO COPY MEMBERS CONTAINING A DATA STRING
//* IN: PDS
//* OUT: PDS
//* COPY ONLY MEMBERS CONTAINING PGM=MYPROG ANYWHERE ON THE LINE
//* AND // AND EXEC ON THE SAME LINE
//FILEAI2 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD DATA
DONT COPY ME
// EXEC COPY ME PGM=MYPROG
NO COPY ME
/*
//DD01O DD DISP=(NEW,CATLG), <-the output
// UNIT=SYSDA,LRECL=80,RECFM=FB,BLKSIZE=27920,
// SPACE=(TRK,(1,1,10),RLSE)
//SYSIN DD *
$$DD01 COPYMEM OUT=0,
IF=(01,00,C'PGM=MYPROG'),
AND=(01,03,C'//'),AND=(01,00,C'EXEC')
/*
//*
//*
//* Fabat02.jcl sample JCL for fileaid batch
//* COPY ALL RECORDS. IF THERE'S A 8 IN COLUMN 5, PUT A G IN COL 5
//*
//STEP1 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//DD01 DD *
000006 RECORD 1 LARRY
000054 RECORD 2 CURLY
000041 RECORD 3 MOE
000028 RECORD 4 LOU
000082 RECORD 5 LAUREL
/*
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL IF=(5,EQ,C'8'),R=(5,C'G')
/*
//* COPY ALL RECORDS. IF THERE'S A 8 IN COLUMN 5, PUT A G IN COL 5
//*
//* FILEAID TO COPY A FILE
//* IN: SEQ
//* OUT: SEQ
//* JUST PLAIN COPY
//FILEAI3 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD *
GABE
LINDA
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL
/*
//*
//*
//* FILEAID TO COPY A FILE
//* PUT AN EXCLAMATION IN POSITION 1
//* SHIFT THE REMAINDER OF THE LINE OVER BY 1
//* IN: SEQ
//* OUT: SEQ
//FILEAI4 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD *
HELLO THERE
AND A GOOD DAY TO YOU
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL MOVE=(1,C'!'),
MOVE=(2,79,1)
/*
//*
//* FILEAID TO COPY A FILE AND CHANGE A DATA STRING
//* REPLACES ALL OCCURENCES OF ABCD WITH WXYZ
//* IN: SEQ
//* OUT: SEQ
//FILEAI5 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD *
HELLO NO CHANGE HERE
ABCD CHANGE ME
ABCDEF CHANGE ME TOO
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL REPLALL=(1,0,C'ABCD',C'WXYZ')
/*
//*
//* FILEAID TO COPY A FILE AND CHANGE A DATA STRING
//* IF POSITION 1 HAS ./ CHANGE THEM TO !/
//* IN: SEQ
//* OUT: SEQ
//FILEAI6 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD *
./ I'LL BE CHANGED
/. I WON'T BE
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL IF=(1,EQ,C'./'),R=(1,C'!/')
/*
//*
//*
//* FILEAID TO COPY A FILE AND DROP LINES
//* IF A LINE CONTAINS STRING1, AND AB IN COLUMN: 1 DROP IT
//* ORIF IT CONTAINS STRING2, AND CD IN COLUMN1: DROP IT
//* IN: SEQ
//* OUT: SEQ
//FILEAI7 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD *
AB STRING1 I'LL BE DROPPED
ZZ STRING1 I WON'T BE DROPPED
AB STRING2 I WON'T BE DROPPED
CD STRING2 I WILL BE DROPPED
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 DROP IF=(1,0,C'STRING1'),AND=(1,EQ,C'AB'),
ORIF=(1,0,C'STRING2'),AND=(1,EQ,C'CD')
/*
//*
//*
//*
//*
//* fileaid to copy a library
//* in: pds
//* out: pds
//* just plain copy a library, all members
//FILEAID EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//DD01 DD DISP=SHR, <-the input
// DSN=the.input.dsn
//DD01O DD DISP=(NEW,CATLG), <-the output
// UNIT=SYSDA,LIKE=the.input.dsn,
// SPACE=(TRK,(1,1,10),RLSE)
//SYSIN DD *
$$DD01 COPYMEM,OUT=0
/*
//* Fabat05.jcl sample JCL for fileaid batch
//* COPY ALL RECORDS. PUT FIRST 3 CHARS OF NAME INTO COL 1
//* FOLLOWED BY REST OF INPUT RECORD (77 CHARACTERS)
//*
//STEP1 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//DD01 DD *
000006 RECORD 1 LARRY
000054 RECORD 2 CURLY
000041 RECORD 3 MOE
000028 RECORD 4 LOU
000082 RECORD 5 LAUREL
/*
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL MOVE=(1,3,17),MOVE=(4,77,1)
/*
//* COPY ALL RECORDS. PUT FIRST 3 CHARS OF NAME INTO COL 1
//* FOLLOWED BY REST OF INPUT RECORD (77 CHARACTERS)
//* Fabat06.jcl sample JCL for fileaid batch
//* COPY ALL RECORDS. REPLACE FIRST CHARACTER BY X
//*
//STEP1 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//DD01 DD *
000006 RECORD 1 LARRY
000054 RECORD 2 CURLY
000041 RECORD 3 MOE
000028 RECORD 4 LOU
000082 RECORD 5 LAUREL
/*
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL REPL=(1,C'X')
/*
//* COPY ALL RECORDS. REPLACE FIRST CHARACTER BY X
//*
//* Fabat07.jcl sample JCL for fileaid batch
//* COPY ALL RECORDS. REPLACE ANY L IN COLUMN 17 BY A P
//*
//STEP1 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//DD01 DD *
000006 RECORD 1 LARRY
000054 RECORD 2 CURLY
000041 RECORD 3 MOE
000028 RECORD 4 LOU
000082 RECORD 5 LAUREL
/*
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL REPL=(17,EQ,C'L',C'P')
/*
//* COPY ALL RECORDS. REPLACE ANY L IN COLUMN 17 BY A P
//* Fabat08.jcl sample JCL for fileaid batch
//* COPY ALL RECORDS. REPLACE FIRST L BY A P
//*
//STEP1 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//DD01 DD *
000006 RECORD 1 LARRY
000054 RECORD 2 CURLY
000041 RECORD 3 MOE
000028 RECORD 4 LOU
000082 RECORD 5 LAUREL
/*
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL REPL=(1,0,C'L',C'P')
/*
//* COPY ALL RECORDS. REPLACE FIRST L BY A P
//*
//**************************************************************************
//* Fabat09.jcl sample JCL for fileaid batch
//* COPY ALL RECORDS. REPLACE ALL L'S BY A P'S
//*
//STEP1 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//DD01 DD *
000006 RECORD 1 LARRY
000054 RECORD 2 CURLY
000041 RECORD 3 MOE
000028 RECORD 4 LOU
000082 RECORD 5 LAUREL
/*
//DD01O DD SYSOUT=*
//SYSIN DD *
$$DD01 COPYALL REPLALL=(1,0,C'L',C'P')
/*
//* COPY ALL RECORDS. REPLACE ALL L'S BY A P'S
//* Fileaid to copy all records
//* move the whole input record to the output record
//* move an ! into column 3
//*
//*
//* if there's the word GABE in column 12 of input,
//* move a G into column 3 and move a G into column 5
//*
//* if there's the word LINDA in column 12 of input,
//* move a L into column 3 and move a B into column 5
//*
//FILEAID EXEC PGM=FILEAID
//SYSLIST DD SYSOUT=*
//DD01 DD DSN=input-file,
// DISP=SHR
//DD01O DD DSN=output-file,
// DISP=(NEW,CATLG),
// UNIT=SYSDA,
// LRECL=80,RECFM=FB,
// SPACE=(TRK,(10,5),RLSE)
//*
//SYSIN DD *
$$DD01 COPYALL OUT=0,
MOVE=(01,80,01), MOVE WHOLE RECORD. RECL IS 80
MOVE=(03,C'!'), MOVE AN ! INTO COLUMN 3
IF=(12,EQ,C'GABE'),MOVE=(03,C'G'),MOVE=(05,C'G'),
IF=(12,EQ,C'LINDA'),MOVE=(03,C'L'),MOVE=(05,C'B')
/*