You can use DFSORT's PARSE function to do that. You didn't show what the input records look like or what the output records look like, so I just set up the job to extract the 37th delimited value right justified in a 20 character VB output field. If you want something else, give me details about what you want and show an example.
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file
//SORTOUT DD DSN=... output file
//SYSIN DD *
OPTION COPY
INREC PARSE=(%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),%=(ENDBEFR=C';'),
%37=(ENDBEFR=C';',FIXLEN=20)),
BUILD=(1,4,%37)
/*