【发布时间】:2020-03-13 12:19:47
【问题描述】:
我有一个类似这样的 fasta 文件。
>header1
ATGC....
>header2
ATGC...
我的列表文件是这样的
organism1
organism2
并包含我要替换标题的有机体列表。
我尝试使用for 循环使用sed 命令,如下所示:
for i in `cat list7b`; do sed "s/^>/$i/g" sequence.fa; done
但它不起作用,请告诉我如何完成这项任务。
结果文件应该是这样的
>organism1
ATGC...
>organism2
ATGC....
即>header1替换为>organism_1等等
- 这两个标头与 ATGC 不同,因为标头始终以
>大于号开头,而 ATGC 不会。这就是他们的区别。 - 标题行应按出现顺序替换,即第一个
header*替换为文件中的第一行,第二个标题中的第二个,依此类推。
如果可能,我还要求解释逻辑。 提前致谢。
【问题讨论】:
-
请edit您的问题并解释您如何区分
header1、header2等行与ATGC....行。我假设这两行organism1和organism2是你的文件list7b。您如何定义哪条organism*行将替换哪条header*行?通过一个常见的尾随数字,例如header1 ->organism1 等等?或者按出现的顺序,即第一个header*替换为文件中的第一行,第二个header*替换为第二行等? -
@Bodo 感谢您的快速回复。我已经重新编辑了这个问题,我希望这能帮助你理解这个问题。如果编辑不够,请随时询问,非常感谢您为帮助我所付出的时间和努力。
标签: linux text-processing