找到字符串并替换

时间:2016-02-25 08:22:57

标签: string find

嗨我有这样的文件

  

L_00001_mRNA_interferase_MazF   ATGGATTATCCAAAACAAAAGGATATTGTCTGGATTGATTTTGACCCTTCTAAAGGCAAA   GAGATAAGAAAGCGGAGACCTGCGTTAGTAGTTAGTAAAGATGAATTTAATGAACGTACA   GGTTTCTGTTTAGTTTGCCCCATCACATCTACTAAAAGGAACTTTGCAACGTATATTGAA   ATAACAGACCCACAGAAAGTAGAAGGGGACGTAGTTACCCATCAATTGCGAGCGGTTGAT   TACACCACAAGAAATATCGAAAAAATTGAACAATGTGATATGTTGACGTGGATTGATGTA   GTAGAAGTAATCGGAATGTTTATTTAA

     

L_00002_hypothetical_protein   ATGGAAACGGTAGTTAGAAAGATAGGGAATTCAGTAGGAACTATTTTTCCGAAAAGTATT   TCACCACAAGTTGGAGAAAAGTTCACTATTCTTAAAGTTGGGGAAGCGTATATATTGAAA   CCTAAGAGAGAAGATATTTTTAAAAATGCTGAAGATTGGGTAGGGTTTAGAGAAGCTTTG   ACTAATGAAGATAAAGAATGGGACGAGATGAAACTTGAGGGAGGAGAACGCTAG

     

L_00003_hypothetical_protein   ATGACAACGTTTGGAGAAATTCATAGCAATGCAGAAGGTTATAAAAACGATTTTAATGAG   TTGAATAAATTAGTATTACGTGTAGCTGAAGAAAAAGCAAAAGGAGAGCCATTAGTAACG   TGGTTTCGGTTGCGGAATCGTAGGATTGCACAAGTATTAGACCCAATGAAAGAAGAAGTA   GAAAGTAAATCAAAGTACGAAAAAAGAAGAGTAGCAGCAATTAGTAAAAGCTTTTTTCTA   CTTAAAAAAGCTTTTAACTTTATTGAAGCAGAACAATTTGAAAAAGCAGAAAAATTAATT

我想用字符串替换每个序列的标题。

我有一个转换文件,如

L_00001_mRNA_interferase_MazF galM,GALM,aldose1-epimerase [EC:5.1.3.3]

L_00002_hypothetical_protein E3.2.1.85,lacG,6-磷酸-β-半乳糖苷酶[EC:3.2.1.85]

PST-Lac-EIIB,lacE,PTSsystem,乳糖特异性IIB组分[EC:2.7.1.69]

1 个答案:

答案 0 :(得分:1)

您的问题不清楚您所使用的平台(Windows,Linux,Mac,...),您受限制的语言以及输入文件的确切详细信息。

假设你在Linux上,或者有sedawk可用且命令shell,它可能就像($表示Bourne-一样简单)像shell提示一样):

$ awk '{print "s/^" $1 "/" $2 "/"}' conversions.txt > conversions.sed
$ sed -f conversions.sed sequences.txt > relabeled.txt

这假定您的第一个文件(带有您想要更改的标题)被称为sequences.txt,而您的第二个文件(“转换文件”)被称为conversions.txt。进一步假设“转换文件”每行包含一个记录,其中正好有两个字段 - 原始和替换标题 - 由空格分隔(即原始标题和新标题都不包含任何空格)并且没有空行。

在此解决方案中,第一行(awk)行将conversions.txt文件转换为sed脚本conversions.sed;第二行(sed)然后在sequences.txt文件上运行此脚本,生成relabeled.txt文件,该文件可能(或可能不)是您要查找的内容。

根据输入文件的确切性质,您的问题不明确,这可能需要进行一些调整。

希望这有帮助。