如何从输入文件中获取唯一的记录,在第5个位置写入“7”

时间:2013-11-07 10:07:57

标签: mainframe syncsort

需要一个SORT JCL来记录输入文件中的记录,这些记录在第5位写入了'7'。

    input file:
    AABL5ZZZZ
    AAQL7AAAA
    ZZWA76AAA
    AAXC01AAA

输出

    AAQL7AAAA
    ZZWA76AAA

1 个答案:

答案 0 :(得分:4)

如果您不希望对记录进行排序,则可以使用

之类的内容
//*******************************************
//SORT     EXEC PGM=SORT                     
//*******************************************
//SORTIN   DD  DSN=MY.INPUT.FILE,DISP=SHR
//SORTOUT  DD  SYSOUT=*                      
//SYSOUT   DD  SYSOUT=*                      
//SYSUDUMP DD  SYSOUT=*                      
//SYSIN    DD  *                             
  SORT FIELDS=COPY                           
  INCLUDE COND=(5,1,CH,EQ,C'7')              
  END                                        
/*

要进行排序,只需更改SORT FIELDS=语句。

P.S。:以上JCL用于固定记录长度的文件。如果使用变量记录长度,则需要注意两点:

  • 将4字节长度字段添加到比较位置
  • 让SORT跳过短于5个字节的记录

所以SYSIN看起来像

  OPTION VLSHRT                
  SORT FIELDS=COPY             
  INCLUDE COND=(9,1,CH,EQ,C'7')
  END