Aqui está um corte um pouco aproximado (sem tratamento de erros):
awk '/\*$/ { save_id = substr($3, 2, length($3)-4) }
/^[0-9]/ { save_num = $1 }
NR > 1 && /^>/ {print save_id, save_num+1 }
END {print save_id, save_num+1 }
' data_file
- Em uma linha que termina com
*
(ou seja, que corresponde a/*$/
), extrair o ID do grupo da terceira palavra, descartando o primeiro caractere (>
) e os últimos três (...
). - Nas linhas que começam com um número, salve o número (ou seja, a primeira palavra).
- Ao encontrar uma linha que começa com
>
(mas excluindo a primeira linha no arquivo especificandoNR > 1
) ou o final do arquivo, saída os valores salvos apropriados.