sed:保留匹配行的某些内容

时间:2015-04-16 16:16:30

标签: sed fasta

我在一个fasta文件中有很多序列,如下面的那个(从UniProtKB下载):

>sp|P00045|CYC7_YEAST Cytochrome c iso-2 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GN=CYC7 PE=1 SV=1
MAKESTGFKPGSAKKGATLFKTRCQQCHTIEEGGPNKVGPNLHGIFGRHSGQVKGYSYTD
ANINKNVKWDEDSMSEYLTNPKKYIPGTKMAFAGLKKEKDRNDLITYMTKAAK

由于它们都是细胞色素c的氨基酸序列,我只关心有机体(即上述条目中的酿酒酵母)。所以我希望修改这些序列的标题如下:

>Saccharomyces cerevisiae
MAKESTGFKPGSAKKGATLFKTRCQQCHTIEEGGPNKVGPNLHGIFGRHSGQVKGYSYTD
ANINKNVKWDEDSMSEYLTNPKKYIPGTKMAFAGLKKEKDRNDLITYMTKAAK

有机体名称总是在“OS =”之后,并在以下任何一个时停止:

  1. 空间(。*)#应变信息
  2. 空间.. =
  3. 满足。

    那么有人能给我一些关于如何制作它的线索吗? THX!

1 个答案:

答案 0 :(得分:2)

您可以使用:

sed 's/.*OS=\([^(]*\).*/>\1/' input