Tente isto:
BATCH=AB1234
awk -v batch="#Batch Job.*${BATCH}" '($0 ~ batch),/#--.*/' filename
Eu preciso de algo assim
#Batch Job - AB1234
texts
texts
texts
texts
texts
#--------
eu usei
awk '/#Batch Job.*AB1234/,/#--.*/' filename
e eu fui bem.
Mas quando tentei parametrizar o AB1234, usando este script, falhei.
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
Tags awk regular-expression