Você pode expandir a condição /pattern1/,/pattern2/
o quanto quiser, adicionando um bloco {}
após ser executado quando isso ocorrer:
Veja, por exemplo, como imprimimos esses números entre 50 e 70, mas apenas as 5 primeiras correspondências de cada bloco:
$ seq 200 | awk '/50/,/70/ {if ($0~/50/) {c=0}; if (c++ <= 5) print}'
50
51
52
53
54
55
150
151
152
153
154
155
No seu caso, você pode querer dizer algo assim, que imprimirá as primeiras 10 linhas que foram correspondidas.
awk '/[^<]select[^>]/,/from/ {if (c++ <= 10) print}' *
Uma solução mais complexa consistiria em armazenar toda essa saída e depois imprimi-la no bloco END
. Dessa forma, você pode controlar o bloco em vez de apenas uma linha específica. Eu faria isso armazenando os dados em um array, etc.