複数行の一連のレコードを含むファイルがあります。一連のレコードのログ ファイルを読み取り、それぞれの個別のレコードを個別のファイルに書き込む必要があります。以下と同じファイル..
VMEMBER NAME CMPJFCB
V//NGJFCB JOB (P,KBTB,BB2994),'MVSNBY-CMP',CLASS=A, JOB40337
V// REGION=0M,MSGCLASS=W,NOTIFY=&SYSUID
v// CYX sss eee
VMEMBER NAME CMPJFCB
V//NGJFCB JOB (P,KBTB,BB2994),'MVSNBY-CMP',CLASS=A, JOB40337
V// REGION=0M,MSGCLASS=W,NOTIFY=&SYSUID
v
v//
VMEMBER NAME CMPJFCB
V//NGJFCB JOB (P,KBTB,BB2994),'MVSNBY-CMP',CLASS=A, JOB40337
V// REGION=0M,MSGCLASS=W,NOTIFY=&SYSUID
v
v//
v/*
and so on ...
したがって、上記の開始点から「VMEMBER NAME」はわかりますが、終了点はわかりません。「V」または「V//」などで終了できます。以下のように範囲一致で試しました
$line =~ m{VMEMBER .. v\/\*}
しかし、問題は最後のパターン (v*) です。これは、レコードの最後の行が何であるかがわからないためです。助けてください。
最初のセットの出力は
VMEMBER NAME CMPJFCB
V//NGJFCB JOB (P,KBTB,BB2994),'MVSNBY-CMP',CLASS=A, JOB40337
V// REGION=0M,MSGCLASS=W,NOTIFY=&SYSUID
v// CYX sss eee
2番目のセットは
VMEMBER NAME CMPJFCB
V//NGJFCB JOB (P,KBTB,BB2994),'MVSNBY-CMP',CLASS=A, JOB40337
V// REGION=0M,MSGCLASS=W,NOTIFY=&SYSUID
v
v//
このような。