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
thegeek
December 15, 2009, 8:16am
2
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
rdcwayx
December 15, 2009, 8:30pm
3
awk '{if ($1~/^#/) {printf "MG_PN_%04d_SPV001\n", ++i} else {print}}' input.txt
ichigo
December 16, 2009, 6:06am
4
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