awk 범위 모드에서 awk 매개변수를 통합하는 방법

awk 범위 모드에서 awk 매개변수를 통합하는 방법

이런 걸 얻어야 해요

#Batch Job - AB1234
texts
texts
texts
texts
texts
#--------

나는 사용했다

awk '/#Batch Job.*AB1234/,/#--.*/' filename

나는 좋은 진전을 보이고 있습니다.

하지만 이 스크립트를 사용하여 AB1234를 매개변수화하려고 하면 실패합니다.

BATCHJOBNAME=AB1234
awk -v batchjobname=$BATCHJOBNAME '
  /#Batch.*/ { f=1 ; m=0 ; res="" }
  f { res = res $0 ORS }
  f && /Job.*/ && index($2,batchjobname) > 0 { m=1 ;}
  /<#--.*>/ { f=0 ; if (m) print res ; }
 ' filename

답변1

이 시도:

BATCH=AB1234
awk -v batch="#Batch Job.*${BATCH}" '($0 ~ batch),/#--.*/' filename

관련 정보