如何使用SORT将空行移动到文件末尾?
我有 9787 条记录,其中前 17 行是空白的。我想将这 17 行移到文件末尾。 我怎样才能做到这一点?
I have 9787 records of which the first 17 lines are blank. I want to move those 17 lines to the end of the file.
How can I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
下面将使用 SORTOUT DD 末尾的空行对输入数据集进行排序
//SORT EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTWK01 DD 空间=(CYL,(10,5),RLSE)
//SORTWK02 DD 空间=(CYL,(10,5),RLSE)
//SORTWK03 DD 空间=(CYL,(10,5),RLSE)
//排序 DD DSN=INPUT.DATASET,DISP=SHR
//排序 DD SYSOUT=*
//SYSIN DD *
排序字段=(1,80,CH,D)
//*
FIELDS=(1,80,CH,D) 表示使用字符数据从位置 1 开始按降序排序 80 个字符。
如果您的数据集宽度超过 80 个字符,您可能需要在此处放置实际宽度,否则可能不会在末尾放置空行。
The below will sort the input dataset with the blank lines at the end of the 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 *
SORT FIELDS=(1,80,CH,D)
//*
FIELDS=(1,80,CH,D) means it is sorting in descending order from Position 1 for 80 characters using character data.
If you dataset is wider than 80 characters you might need to put the actual width here or the blank lines might not be put at the end.
无需对数据进行排序。幸运的是,数据行是 1) 按照整个记录的顺序,2) 按降序顺序:-)。
这通过在每个记录的“末尾”添加序列号来临时扩展每个记录(五位数字应允许扩展)。使用 OUTFIL OMIT,数据前 17 条记录中的空白行将被删除。使用 TRAILER1 和“斜杠运算符”“/”,将 17 个空行添加到文件的“末尾”。 REMOVECC 是因为不需要 TRAILER1(报告功能)本来会添加的打印机控制字符。 OUTFIL 上的 BUILD 是将记录恢复到原始大小,删除 5 位序列号。
There is no need to Sort the data. Lucky that the data lines were 1) in order as per entire record, 2) in descending order :-).
This temporarily extends each record by adding a sequence number at the "end" of each record (five digits should allow for expansion). With OUTFIL OMIT, blank lines that are from the first 17 records of the data are dropped. With TRAILER1 and the "slash operator" "/", 17 blank lines are added to the "end" of the file. The REMOVECC is due to the need to not have the printer control-character that TRAILER1 (a reporting function) would otherwise add. The BUILD on OUTFIL is to return the record to its original size, dropping the 5-digit sequence number.