Leitura novamente sua descrição Eu entendo que você deseja que o primeiro jogo do padrão B de baixo para cima até que (a subir) na primeira partida do padrão A. Mas as seções resultantes devem ser na ordem em que o arquivo tem.
Isso requer muita lógica. O seguinte script shell faz tudo. Vai colocar os resultados na ordem interna correta nos arquivos E
e algum número, primeiro arquivo ( E1
) terá o primeiro jogo a partir do topo, último arquivo terá a última seção de jogo.
#!/bin/bash
rm -rf resE* E*
tac ../example_file.txt |
awk 'BEGIN{i=1}
/^AK5\*R.*/{p=1}
{if(p==1){f="resE" i;print($0)>>f;close(f)}}
/^AK2.*/{if(p==1){i++};p=0}
'
set -- resE*
c=$#
for (( i=1;i<=$c;i++)); do
pos=$(($c-$i+1))
[ -f "$1" ] && tac "$1" > "E$pos"
shift
done
Os intervalos resultantes serão:
$ cat E1
AK2*777*7777777
AK3*S6*5**3
AK3*A2*5**3
AK4*3*6969*4
AK4*7*6969*4
AK5*R*5
$ cat E2
AK2*777*7777777
AK3*J7*5**3
AK4*3*6969*4
AK5*R*5