匹配一个字符串并向其添加一个新字符串

匹配一个字符串并向其添加一个新字符串

我有以下文件:

NbV1Ch01        transdecoder    gene    802292  803490  .       +       .       ID=STRG.1;Name=ORF%20type%3A5prime_partial%20len%3A222%20%28%2B%29%2Cscore%3D55.19%2CXP_009619919.1%7C95.4%7C9.7e-113%2Cperoxidase%7CPF00141.23%7C3.1e-67%2CBaculo_PEP_C%7CPF04513.12%7C0.049%2CBaculo_PEP_C%7CPF04513.12%7C5.7e%2B02
NbV1Ch01        transdecoder    mRNA    802292  803490  .       +       .       ID=STRG.1.1.p1;Parent=STRG.1;Name=ORF%20type%3A5prime_partial%20len%3A222%20%28%2B%29%2Cscore%3D55.19%2CXP_009619919.1%7C95.4%7C9.7e-113%2Cperoxidase%7CPF00141.23%7C3.1e-67%2CBaculo_PEP_C%7CPF04513.12%7C0.049%2CBaculo_PEP_C%7CPF04513.12%7C5.7e%2B02
NbV1Ch01        transdecoder    exon    802292  802491  .       +       .       ID=STRG.1.1.p1.exon1;Parent=STRG.1.1.p1
NbV1Ch01        transdecoder    CDS     802294  802491  .       +       0       ID=cds.STRG.1.1.p1;Parent=STRG.1.1.p1
NbV1Ch01        transdecoder    exon    802781  802946  .       +       .       ID=STRG.1.1.p1.exon2;Parent=STRG.1.1.p1
NbV1Ch01        transdecoder    CDS     802781  802946  .       +       0       ID=cds.STRG.1.1.p1;Parent=STRG.1.1.p1
NbV1Ch01        transdecoder    exon    803048  803490  .       +       .       ID=STRG.1.1.p1.exon3;Parent=STRG.1.1.p1
NbV1Ch01        transdecoder    CDS     803048  803349  .       +       2       ID=cds.STRG.1.1.p1;Parent=STRG.1.1.p1
NbV1Ch01        transdecoder    three_prime_UTR 803350  803490  .       +       .       ID=STRG.1.1.p1.utr3p1;Parent=STRG.1.1.p1

我有例如这个cds.STRG.1.1.p1;Parent=STRG.1.1.p1。怎么可能把它改成ID=STRG.1.1.p1.cds;Parent=STRG.1.1.p1

先感谢您

答案1

KISS 方法:

sed -e 's|cds.|ID=|g' -e 's|p1;|p1.cds;|g' file

即使用 sed 替换cds.ID=,然后替换p1;p1.cds;

输出:

ID=STRG.1.1.p1.cds;Parent=STRG.1.1.p1

如果这符合您的要求并且它来自您想要更改的文件,您可以使用以下命令就地编辑它

sed -i -e 's|cds.|ID=|g' -e 's|p1;|p1.cds;|g' string

相关内容