perl为每一行加一个title
数据:
<HUGOGeneSymbol>BSG</HUGOGeneSymbol>
<Genealias>basigin isoformiv</GeneAlias>
<GeneAlias>basigin isoform 2</GeneAlias>
<GeneAlias>basigin isoform-2</GeneAlias>
<HUGOGeneSymbol>ATP6AP1</HUGOGeneSymbol>
<GeneAlias>ac 45</GeneAlias>
<GeneAlias>vatps-i</GeneAlias>
<GeneAlias>xapiii</GeneAlias>
<HUGOGeneSymbol>FADD</HUGOGeneSymbol>
<GeneAlias>mort-1</GeneAlias>
<GeneAlias>mort i</GeneAlias>
<GeneAlias>gig iii</GeneAlias>
把上面的数据转化为以下形式,就是每个<GeneAlias>行的前面都加上一列它上面的<HUGOGeneSymbol>行,形如以下形式:
<HUGOGeneSymbol>BSG</HUGOGeneSymbol> <GeneAlias>basigin isoformiv</GeneAlias>
<HUGOGeneSymbol>BSG</HUGOGeneSymbol> <GeneAlias>basigin isoform 2</GeneAlias>
<HUGOGeneSymbol>BSG</HUGOGeneSymbol> <GeneAlias>basigin isoform-2</GeneAlias>
<HUGOGeneSymbol>ATP6AP1</HUGOGeneSymbol> <GeneAlias>ac 45</GeneAlias>
<HUGOGeneSymbol>ATP6AP1</HUGOGeneSymbol> <GeneAlias>vatps-i</GeneAlias>
<HUGOGeneSymbol>ATP6AP1</HUGOGeneSymbol> <GeneAlias>xapiii</GeneAlias>
解决方法有两种,命令行与非命令行。
命令行:
非命令行:
while(<INFILE>){
if(/<HUGOGeneSymbol>/){
chomp($key=$_);
}
print "$keyt$_" if/<GeneAlias>/;
}
exit;