You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux/Ubuntu下提取FASTA标题最后分隔符后数字并追加至标题末尾

解决FASTA标题行修改需求

你可以用以下sed命令实现需求,针对以>开头的标题行,提取最后下划线后的数字并追加到标题末尾:

sed -E 's/^>(.*)_([0-9]+)$/>\1_\2_\2/' filename.fasta

命令解释:

  • -E:启用扩展正则表达式,让括号等正则符号无需额外转义
  • ^>(.*)_([0-9]+)$:精准匹配FASTA标题行:
    • ^>:匹配行首的>符号,确保只处理标题行
    • (.*):捕获>之后、最后一个下划线之前的所有内容(比如sequence_1_g)
    • ([0-9]+):捕获最后一个下划线后的数字(比如1)
  • >\1_\2_\2:替换后的格式,其中:
    • \1代表第一个捕获组的内容,\2代表第二个捕获组的数字
    • 最终拼接成>原标题内容_数字的格式,比如原标题>sequence_1_g1会变成>sequence_1_g1_1

直接修改原文件(可选)

如果你确认输出符合预期,想要直接修改原FASTA文件,可以添加-i参数(注意:此操作会直接覆盖原文件,建议先备份):

sed -i -E 's/^>(.*)_([0-9]+)$/>\1_\2_\2/' filename.fasta

你之前找到的sed -E 's/.*_//' filename.fasta是单纯提取最后下划线后的内容,而上面的命令通过捕获分组保留了原标题的全部内容,同时把提取到的数字追加到末尾,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者Jen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:05:32