Sim, awk
é a ferramenta certa para essas tarefas. Supondo que todos os dados estão em um arquivo, como mostrado na pergunta, tente:
awk '
/^Organism:/ { prefix = $2 ; print ; next }
/^matching/ || !NF { print ; next }
{ print prefix, $1 }
'