2011-07-29 102 views
0

我有9787条记录,其中前17行是空白的。我想将这17行移动到文件末尾。 我该怎么做?如何使用SORT将空行移动到文件末尾?

+0

您是否只希望将空白行放在最后,其余部分保留原始顺序?记录中有哪些类型的数据集?你有哪些程序可以访问? – Deuian

+0

是的,记录在PS中。我只能访问DFSORT – Dobby

回答

2

的下面将在的端排序与坯料线输入数据集的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)
// SORTIN DD DSN = INPUT.DATASET,DISP = SHR
// SORTOUT DD SYSOUT = *
// SYSIN DD *
排序字段=(1,80,CH,d)
// *

栏=(1,80,CH,d)指它是在从位置1用于使用字符数据80个字符降序排序。
如果数据集的宽度超过80个字符,则可能需要将实际宽度放在此处,否则空白行可能不会放在最后。

+0

谢谢Deuian ....... – Dobby

+0

@cruzcarrol,如果您发现答案有帮助,您应该点击向上箭头以及通过点击复选标记接受它,如果它解决了你的问题 - http://stackoverflow.com/faq#howtoask – dsolimano

1

无需对数据进行排序。幸运的是数据线是1)按照整个记录的顺序,2)在下降命令:-)。

这通过在每个记录的“结尾”添加一个序列号(5个数字应允许扩展)来临时扩展每条记录。使用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=(/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/) 
相关问题