【发布时间】:2022-01-15 12:41:27
【问题描述】:
如果你们中有人熟悉大型机 JCL。
我正在尝试匹配工作卡的最后一行。
基本上第一行以// 开头并没有逗号结束。
在示例中,我需要匹配第 3 行或最多第 3 行。
我正在使用 Ansible 的 lineinfile 在工作卡之后动态插入路线卡。
例如:
//SPOOL1 JOB (UU999999999,1103),'Programmer',CLASS=0, <--- start of job card
// REGION=0M,MSGCLASS=R,TIME=5, LINES=(999999,WARNING),
// NOTIFY=&SYSUID <--- end of job card
//STEPNAME EXEC PGM=BPXBATCH
//STDERR DD SYSOUT=*
//STDOUT DD SYSOUT=*
//STDPARM DD *
SH cat /dev/urandom
到目前为止,我得到了这个,它与 // 的开头和之后的任何内容相匹配,但是,我无法弄清楚最后一部分
^(\Q//\E(.)*)
【问题讨论】:
-
JOB卡总是以
//SPOOL开头吗?还是被//XXX JOB识别? -
@Bohemian
SPOOL1是用户定义的工作名称:mainframestechhelp.com/tutorials/jcl/job-card.htm -
您是否需要担心第 73 - 80 列中的行号或其他问题?您必须说明工作卡最后一行以逗号结尾的注释吗?
-
@Mr.White 不一定正确:基本上第一行以 // 开头,不带逗号。 您可以将带引号的参数继续到下一行。您对开场报价进行编码,键入最多 pos 的文本。 71. 续行以 // 开头,后跟空格,直到 pos 15。然后参数文本继续以 pos 开头。 16. 有一行以逗号结尾的 // not 开头,但仍然不是 JOB 语句的最后一行。 (删除并添加了评论,但更正了拼写错误。)
标签: regex parsing ansible mainframe jcl