Bash
infile="example.in"
outfile="example.out"
reStart="^ABC"
reEnd="^DEF"
found=0
cat $infile | while read line; do
if [[ $found == 0 ]]; then
if [[ "$line" =~ $reStart ]]; then
found=1
touch $outfile
fi
else
if [[ "$line" =~ $reEnd ]]; then
found=0
else
echo $line >> $outfile
fi
fi
done
Выше будут записаны строки из $ infile между условиями начала ($ reStart) и конца ($ reEnd), но не строки с началоми сами завершите условия для $ outfile.Небольшая реструктуризация позаботится о том, чтобы самим написать начальную и конечную строки, если это то, что вам нужно.