将第一个文件中的子串替换为来自第二个文件的另一个字符串
我有下面两个输入文件
File1:
AST
BDT
CFT
EDT
FRT
File2:
T.ABC.TXT.***.EF.TAXSE.IWS.WISHS
T.ABC.TXT.***.EF.TAXSE.TWS.WISHS
T.ABC.TXT.***.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.***.YS.NEET.WS.WISHS.BKUP
我需要如下输出 也就是说,我需要把文件2记录中的 '***' 替换为文件1中的字符串AST、BDT、CFT、EDT、FRT,例如,4条记录中的所有 '***' 将被文件2中第一条记录的AST字符串替换,并写入输出。之后,再次将这4 条记录中的所有 '***' 替换为来自File2的第二条记录中的BDT字符串,然后写入输出
输出:
T.ABC.TXT.AST.EF.TAXSE.IWS.WISHS
T.ABC.TXT.AST.EF.TAXSE.TWS.WISHS
T.ABC.TXT.AST.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.AST.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.BDT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.BDT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.BDT.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.BDT.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.CFT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.CFT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.CFT.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.CFT.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.EDT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.EDT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.EDT.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.EDT.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.FRT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.FRT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.FRT.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.FRT.YS.NEET.WS.WISHS.BKUP
解决方案
假设包含文件名的文件的LRECL=80和 RECFM=FB,且文件名从第1 个字符开始,且你要替换的3 个星号位于第11个字符的位置,即
----+----1----+----2----+----3----+--
T.ABC.TXT.***.EF.TAXSE.IWS.WISHS
T.ABC.TXT.***.EF.TAXSE.TWS.WISHS
T.ABC.TXT.***.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.***.YS.NEET.WS.WISHS.BKUP
下面的DFSORT JCL将给出结果
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//INA DD *
T.ABC.TXT.***.EF.TAXSE.IWS.WISHS
T.ABC.TXT.***.EF.TAXSE.TWS.WISHS
T.ABC.TXT.***.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.***.YS.NEET.WS.WISHS.BKUP
//INB DD *
AST
BDT
CFT
EDT
FRT
//SORTOUT DD SYSOUT=*
//SYSIN DD *
JOINKEYS F1=INA,FIELDS=(81,1,A),SORTED,NOSEQCK
JOINKEYS F2=INB,FIELDS=(05,1,A),SORTED,NOSEQCK
JOIN UNPAIRED
REFORMAT FIELDS=(F1:01,80,
F2:01,03)
SORT FIELDS=(81,03,CH,A)
OUTREC IFOUTLEN=80,
IFTHEN=(WHEN=INIT,
OVERLAY=(11:11,03,CHANGE=(3,C'***',81,3),
NOMATCH=(11,3)))
/*
//JNF1CNTL DD *
INREC OVERLAY=(81:C'M')
/*
//JNF2CNTL DD *
INREC OVERLAY=(05:C'M')
/*
上述作业的输出是
T.ABC.TXT.AST.EF.TAXSE.IWS.WISHS
T.ABC.TXT.AST.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.AST.EF.TAXSE.TWS.WISHS
T.ABC.TXT.AST.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.BDT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.BDT.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.BDT.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.BDT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.CFT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.CFT.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.CFT.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.CFT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.EDT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.EDT.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.EDT.YS.NEEI.WS.WISHS.BKUP
T.ABC.TXT.EDT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.FRT.EF.TAXSE.IWS.WISHS
T.ABC.TXT.FRT.YS.NEET.WS.WISHS.BKUP
T.ABC.TXT.FRT.EF.TAXSE.TWS.WISHS
T.ABC.TXT.FRT.YS.NEEI.WS.WISHS.BKUP
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。