【发布时间】:2017-01-31 13:31:08
【问题描述】:
我有一个重复的文本,我想小心地将一个标签替换为另一个标签,我不介意重复 sed awk 或其他方法。因此,我想先替换前两个匹配项,然后在前 4、6 个等之后替换。我不想要 for,我只需要类似下面的代码,我想跳过前两个匹配,然后增加该数字。
sed 's/foo/bar/2g' fileX
awk '{ sub(/foo/,"bar"); print }' fileX
这是一个例子。每行出现两次
blastx -q specie.fa -db pep -num 6 -max 1 -o 6 > specie.x.outfmt6
blastp -q specie.pep -db pep -num 6 -max 1 -o 6 > specie.p.outfmt6
blastx -q specie.fa -db pep -num 6 -max 1 -o 6 > specie.x.outfmt6
blastp -q specie.pep -db pep -num 6 -max 1 -o 6 > specie.p.outfmt6
期望的输出
blastx -q dog.fa -db pep -num 6 -max 1 -o 6 > dog.x.outfmt6
blastp -q dog.pep -db pep -num 6 -max 1 -o 6 > dog.p.outfmt6
blastx -q worm.fa -db pep -num 6 -max 1 -o 6 > worm.x.outfmt6
blastp -q worm.pep -db pep -num 6 -max 1 -o 6 > worm.p.outfmt6
【问题讨论】:
-
我不知道你在说什么。首先你说你想替换前两个匹配,然后你说你想跳过前两个匹配。它是哪一个?也许显示示例输入和所需的输出。
-
你能提供一个示例输入/输出吗?
-
我在上面提供了一个例子。
-
我不知道该示例应该向我们展示什么。你已经用一些动物的名字代替了物种这个词,你说那是
after some rounds of code skipping the first 2, the first 4, etc.。嗯?您是否有一个动物名称列表,并且您想将“物种”一词替换为每个名称一次 2 行? -
我在下面回答,你说得对,我只是可以通过一个列表,我不知道如何处理。