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

如何用Awk拆分SAM文件并保留指定头部行至所有拆分文件

拆分SAM文件并添加头部到每个子文件

可以用awk直接实现,无需额外步骤,核心是先缓存头部内容,再给每个新的输出文件只写入一次头部:

# 缓存前3行@开头的头部
NR<=3 && /^@/ { header = header $0 "\n"; next }
# 处理序列行
{
    out = $3
    # 首次写入该文件时先输出头部
    if (!seen[out]) {
        print header > out
        seen[out] = 1
    }
    print > out
}

使用方法

  1. 把上述代码保存为split_sam.awk
  2. 执行命令:
awk -f split_sam.awk your_input.sam

灵活调整

如果你的SAM头部不止3行,而是所有@开头的行都要作为头部,把第一行的NR<=3 && /^@/改成/^@/即可,这样会缓存所有头部行。

这种方法用关联数组seen记录已写入头部的文件,避免重复写入,同时处理大文件效率也很高,不需要生成临时文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:55:17