我有9787条记录,其中前17行为空白。我想把这17行移到文件的末尾。我该怎么做呢?
下面将使用SORTOUT DD
末尾的空行对输入数据集进行排序//SORT EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTWK01 DD SPACE=(CYL,(10,5),RLSE)
//SORTWK02 DD SPACE=(CYL,(10,5),RLSE)
//SORTWK03 DD SPACE=(CYL,(10,5),RLSE)
//排序dd dsn =输入。数据集,DISP =月
//排序DD SYSOUT=*
//sysdd *
排序字段= (80,CH, D)
//*
FIELDS=(1,80,CH,D)表示使用字符数据从位置1开始按降序排序80个字符。
如果数据集的宽度大于80个字符,则可能需要将实际宽度放在这里,否则可能不会将空行放在末尾。
无需对数据进行排序。幸运的是,数据线1)按照整个记录的顺序排列,2)按照降序排列:-)。
通过在每条记录的"末尾"添加序列号来临时扩展每条记录(五个数字应该允许扩展)。使用OUTFIL OMIT,删除来自数据的前17条记录的空行。使用TRAILER1和"斜杠"操作符"/",将在文件的"末尾"添加17个空行。REMOVECC是由于不需要有打印机控制字符,否则TRAILER1(一个报告功能)将添加。OUTFIL上的BUILD是将记录返回到其原始大小,去掉5位序列号。
OPTION COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,5,ZD))
OUTFIL OMIT=((1,80,CH,EQ,C' ',
AND,81,5,ZD,LE,17)),
BUILD=(1,80),
REMOVECC,
TRAILER1=(/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/)