如何使用DFSORT将较小的字符串替换为较大的字符串而不影响相邻字段?

问题描述

我在下面的输入文件中:Field1 =(1-7)field2 =(8-12)field3 =(13-19) ABC'DEF12345GHIJ'KL

我需要以下字段长度相同的输出文件: ABC?'DE12345GHIJ?'K

需要用“?”替换“'” ”使用dfsort。如何实现呢?请帮忙。

解决方法

如果您的输入文件包含:

ABC'DEF12345GHIJ'KL 

使用以下控制卡:

RECORD TYPE=F,LENGTH=20
SORT FIELDS=COPY
INREC FINDREP=(IN=(C''''),OUT=(C'?'''))  * Replace ' with ?'
OUTREC BUILD=(1,20)  * Truncate to 20 Bytes
END

您的输出文件将包含:

ABC?'DEF12345GHIJ?'K

这已使用适用于 Windows x64 的 AHLSORT 进行了验证,版本 v14r3-87-g811342a2,但在 z/OS 上使用 DFSORT 或 SYNCSORT 应该可以正常工作。