将两个文本中相同内容的记录做合并

【问题】
I have one file that looks like this

>Unc14086

AGAGUUUGAU

>Unc35443

GCACGAGAAA

So, every n (n may vary) lines the next line starts with “>”, that is the beginning of a new block of information.

I have another tab-delimited file:

Unc14086  InformationalTextExample

Unc35443  InformationalTextExampleII

My goal is to parse the second file with information found in lines starting with “>” in the first file. Whenever a matching pair occurs, i want to write “InformationalTextExample” in that line, possibly separated by “_”:

>Unc14086_InformationalTextExample

AGAGUUUGAU

>Unc35443_InformationalTextExampleII

GCACGAGAAA

How would that be possible?

Thank you!

【回答】

Perl 的解法虽然结构清晰,但脚本还是太长了.这类结构化计算用集算器的循环函数会比较简单,SPL 如下:



A

1

=file("one.txt").read@n()

2

=file("another.txt").import()

3

=A1.(if(left(~,1)!=">",~,A2.select@1(mid(A1.~,2)==_1).(">"+_1+"_"+_2)))

更多关于循环函数的详细用法可参考【SQL 难点解决:循环计算】。