Renaming all header to specific header pattern

Input

#HAC0253
EFVHIJHIJEFVTHIJOPKOPKTEFVEFVEFVOPKHIJOPKOPKHIJTTEFVEFVTEFV

#BASFS12
EFVEFVHIJEFVEFVTOPKEFVOPKTHIJTTHIJOPK

#ACG5115
TEFVEFVOIJEFVHIJHIJOPKOPKHIJHIJTTEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK

#ECG5114
IJTOPKHIJEFVOEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK
.
.

Output

#MG_PN_0001SPV001
EFVHIJHIJEFVTHIJOPKOPKTEFVEFVEFVOPKHIJOPKOPKHIJTTEFVEFVTEFV

#MG_PN_0002SPV001
EFVEFVHIJEFVEFVTOPKEFVOPKTHIJTTHIJOPK

#MG_PN_0003SPV001
TEFVEFVOIJEFVHIJHIJOPKOPKHIJHIJTTEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK

#MG_PN_0004SPV001
IJTOPKHIJEFVOEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK
.
.

Depending on how many header available, I hope able to rename all the header to this specific format like : MG_PN_0001SPV001,MG_PN_0002SPV001,MG_PN_0003SPV001,...,etc

cat t.pl
$i = 1;

while(<>)  {
        if ( /^#/ )  {
                printf "#%s", "MG_PN_";
                printf "%04d", $i++;
                print "SPV001\n";
        }  else  {
                print;
        }
}
18:47:31 : ~ : cat t
#HAC0253
EFVHIJHIJEFVTHIJOPKOPKTEFVEFVEFVOPKHIJOPKOPKHIJTTEFVEFVTEFV

#BASFS12
EFVEFVHIJEFVEFVTOPKEFVOPKTHIJTTHIJOPK

#ACG5115
TEFVEFVOIJEFVHIJHIJOPKOPKHIJHIJTTEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK

#ECG5114
IJTOPKHIJEFVOEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK
18:47:32 : ~ : perl t.pl t
#MG_PN_0001SPV001
EFVHIJHIJEFVTHIJOPKOPKTEFVEFVEFVOPKHIJOPKOPKHIJTTEFVEFVTEFV

#MG_PN_0002SPV001
EFVEFVHIJEFVEFVTOPKEFVOPKTHIJTTHIJOPK

#MG_PN_0003SPV001
TEFVEFVOIJEFVHIJHIJOPKOPKHIJHIJTTEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK

#MG_PN_0004SPV001
IJTOPKHIJEFVOEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK

awk '{if ($1~/^#/) {printf "MG_PN_%04d_SPV001\n", ++i} else {print}}' input.txt
gawk ' /^#/{
   pad=sprintf("%04d",++c)
   str="MG_PN_"pad"SPV001"
   $0="#"str
} {print}' file


Thanks, thegeek.
Your perl script work perfectly:)
Thanks again.

---------- Post updated at 06:10 AM ---------- Previous update was at 06:09 AM ----------

Thanks for your suggestion, rdcwayx.
It works fine for my problem ^^

---------- Post updated at 06:20 AM ---------- Previous update was at 06:10 AM ----------

Thanks ichigo,
Your code is another way to solve my problem too ^^

if you have Python

#!/usr/bin/env python
counter=1
for line in open("file"):
    sl=line.strip()
    if sl.startswith("#"):
        counter=str(counter).zfill(4)
        new="MG_PN_"+counter+"SPV001"
        counter=int(counter)+1
        sl="#"+new
    print sl

output

$ ./python.py
#MG_PN_0001SPV001
EFVHIJHIJEFVTHIJOPKOPKTEFVEFVEFVOPKHIJOPKOPKHIJTTEFVEFVTEFV

#MG_PN_0002SPV001
EFVEFVHIJEFVEFVTOPKEFVOPKTHIJTTHIJOPK

#MG_PN_0003SPV001
TEFVEFVOIJEFVHIJHIJOPKOPKHIJHIJTTEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK

#MG_PN_0004SPV001
IJTOPKHIJEFVOEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK