(expandido do comentário)
awk tem a capacidade de selecionar 'intervalos' de linhas que correspondam perfeitamente a essa necessidade, como descrito no manual do GNU-awk (gawk) . (Esse recurso funciona em outros awk s, mas o manual gawk é fácil de vincular.)
awk '/line 2A/,0' imprime linhas iniciando com a primeira que corresponde a line 2A e continua até o final da entrada porque 0 é uma condição que nunca é verdadeira.
awk '/line 2A/,/A/&&!/line 2A/' inicia a impressão com uma linha que corresponde a line 2A e pára após uma linha que corresponde a A mas NÃO line 2A (e, portanto, não pode ser a mesma linha que a linha de início). Ele será iniciado novamente em subseqüente line 2A e assim por diante; se você quiser evitar que haja maneiras um pouco mais complicadas de fazer isso.
Se as linhas de parada sempre tiverem algum caractere diferente de 2 antes do A , isso pode ser simplificado para awk '/line 2A/,/[^2]A/' , que pára após uma linha que corresponde a qualquer caractere diferente de 2, seguido por A. Você pode querer um variação disso, por exemplo para parar em qualquer dígito único A diferente de 2A, mas não outro Como WHAT ; para isso, a condição de parada pode ser ,/line [013-9]A/ .