awk '(NF==5 && $3=="Machine" && $4=="Header"){ flag=1 file=sprintf("%s.txt",$5) } (flag==1) { print $0 >> file close(file) } (NF==4 && $2=="machine" && $1=="End"){ flag=0 }' filename