使用DFSORT删除列

时间:2013-04-08 11:25:34

标签: mainframe dfsort

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

AAAAABBBBBCCCCCDDDDDEEEEEFFFFF

AAAAABBBBBCCCCCDDDDDEEEEEFFFFF

AAAAABBBBBCCCCCDDDDDEEEEEFFFFF 

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

BBBBBCCCCCDDDDDEEEEEFFFFF

BBBBBCCCCCDDDDDEEEEEFFFFF

1 个答案:

答案 0 :(得分: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)

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

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版本/级别相匹配的文件。