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

如何用Bash提取FASTA文件cov_后数值并翻倍写入新文件

解决方案:用Awk高效处理FASTA文件的cov值翻倍需求

嘿,这个需求用Awk来实现最顺手了,它天生就擅长处理这种按行规则操作的文本任务。直接给你写好脚本,再一步步解释怎么回事:

完整脚本命令

awk '
NR % 2 == 1 {
    # 匹配"cov_"后面的数值(支持整数和小数)
    if (match($0, /cov_([0-9.]+)/, capture)) {
        doubled_val = capture[1] * 2
        # 替换原行里的cov数值为翻倍后的值
        sub(/cov_[0-9.]+/, "cov_" doubled_val, $0)
    }
}
# 打印所有行:处理后的奇数行 + 原封不动的偶数行
{ print }
' your_input.fasta > doubled_cov_output.fasta

关键部分拆解

  • 区分奇偶行:Awk里的NR是当前行的行号,NR % 2 == 1就代表所有奇数行(也就是你的FASTA信息行),偶数行直接跳过处理,原样输出,完美保留原文件结构。
  • 提取cov数值:用match()函数配合正则/cov_([0-9.]+)/,把cov_后面的数字(包括小数)捕获到capture数组里,capture[1]就是我们要的目标数值。
  • 数值翻倍并替换:把捕获到的数值乘以2得到doubled_val,再用sub()函数把原行里的cov_xxx片段替换成cov_加新数值。
  • 容错处理:加了if判断,如果某行里没有找到cov_相关内容,就直接输出原行,不会破坏文件的完整性。

怎么用

把命令里的your_input.fasta换成你实际的FASTA文件名,doubled_cov_output.fasta是输出的新文件,运行后就会得到保持原结构但cov值翻倍的文件啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:08:32