1

例如,我有以下可变长度(RECFM=VB)的输入文件:

AAAAABBBBBCCCCCDDDDDEEEEEFFFFF

AAAAABBBBBCCCCCDDDDDEEEEEFFFFF

AAAAABBBBBCCCCCDDDDDEEEEEFFFFF 

我试图通过跳过 A 列来获取如下输出文件。有没有办法可以使用 DFSORT 做到这一点?(outrec?!)

BBBBBCCCCCDDDDDEEEEEFFFFF

BBBBBCCCCCDDDDDEEEEEFFFFF
4

1 回答 1

2

当然

  OPTION COPY
  INREC BUILD=(1,4,6)

1,4 是 RDW(记录描述符字),对于可变长度记录,在 BUILD 中始终是必需的。“6”表示“从起始位置 6 到变量记录的结尾”。DFSORT 将相应地调整 RDW 中的记录长度,并且您在 SORTOUT 上的输出应该是您想要的。

它与 OUTREC 而不是 INREC 相同,但除非需要 OUTREC(在 SORT 之后并且处理依赖于它),否则我使用 INREC。

使用 OUTFIL 也可以,但同样适用(对我而言)。

编辑:

为了进行比较,这里删除了固定长度记录的前五个。我将使用 80 的 LRECL:

  OPTION COPY
  INREC BUILD=(6,75,5X)

5X 将在 75 字节数据后放置 5 个空格,如果 LRECL 保持不变,则将其关闭。

DFSORT 手册可从 IBM 在线获得,包括一个很好的“入门”。手册中有很多例子。对于更复杂的操作,请参阅 IBM 的“Smart DFSORT Tricks”出版物。

编辑:

从您的评论中,从这里开始阅读:

http://publib.boulder.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.iceg200%2Fice1cg6025.htm

和这里:

这些字段在讨论中是“固定的”,不要将其与固定长度的记录混淆。固定长度字段是您具有起始位置和长度的地方。可变字段是您只有开始位置(在可变长度记录上)或定义 PARSEd 字段时的位置。

该文档也提供 PDF 格式,ice1cg60.pdf 是当前文档,但值得找到与您的 DFSORT 版本/级别相匹配的文档。

于 2013-04-08T12:23:25.433 回答