我有以下可变长度的输入文件( RECFM = VB ),例如:
AAAAABBBBBCCCCCDDDDDEEEEEFFFFF
AAAAABBBBBCCCCCDDDDDEEEEEFFFFF
AAAAABBBBBCCCCCDDDDDEEEEEFFFFF
我试图通过跳过A列来获取如下的输出文件。有没有办法可以使用DFSORT来做到这一点? (outrec?!)
BBBBBCCCCCDDDDDEEEEEFFFFF
BBBBBCCCCCDDDDDEEEEEFFFFF
答案 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”出版物。
编辑:
从你的评论开始,请从这里开始阅读:
在这里:
讨论中的字段是“固定的”,不要将它与固定长度的记录混淆。固定长度字段是您具有起始位置和长度的位置。变量字段是您只有起始位置(在可变长度记录上)或定义PARSEd字段的地方。
该文档也以PDF格式提供,ice1cg60.pdf是当前版本,但值得找到与您的DFSORT版本/级别相匹配的文件。