Você pode fazer isso com awk :
awk '{
if(/@File_Version:/){k=$0;}
else{k=k"\n"$0}
}
/^#Name/{n=$2}
/EOD/{
print k > n".txt";
}' file
Explicação
-
if(/^@File_Version:/){k=$0;}: se esta linha começar com@File_Version:, salve a linha comok. -
else{k=k"\n"$0}: para todas as outras linhas, adicione uma nova linha (\n) seguida da linha atual ao valor atual dek. -
/^#Name/{n=$2}: se esta linha começar com#Name, defina a variávelnpara o segundo campo (o nome). -
/^EOD/{print k > n".txt";}: se essa linha começar comEOD, imprima a variávelk(que agora contém o registro inteiro) em um arquivo chamadon.txt, em quené o nome salvo na etapa anterior.