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

如何使用awk从pdb文件提取指定字段并生成TSV文件?

PDB批量汇总为TSV脚本修改方案

原脚本错误点

  • 转义符拼写错误:制表符应为\t、换行符应为\n,原代码写的/t//r属于无效转义,无法输出正确分隔符
  • 字段提取逻辑错误:未指定字段分隔符为制表符,若字段内容包含空格,仅取$2只会拿到第一个单词,无法获取完整值
  • 执行逻辑冗余:同一个pdb文件调用4次awk处理,效率低且多次追加写入易出现格式错乱
  • 开头cat > newFile.txt会等待标准输入,脚本运行后会卡住无法自动执行后续逻辑

修改后完整代码

#!/bin/bash
# 初始化输出TSV文件
> result.tsv

# 遍历所有pdb文件
for f in *.pdb; do
  awk -F'\t' '
    # 匹配对应字段存入变量
    $1 == "ACCESSION" {acc = $2}
    $1 == "DEFINITION" {def = $2}
    $1 == "SOURCE" {src = $2}
    $1 == "LOCUS" {loc = $4}
    # 处理完当前文件后输出一行TSV数据
    END {
      print acc "\t" def "\t" src "\t" loc
    }
  ' "$f" >> result.tsv
done

优化说明

  • 指定-F'\t'将awk字段分隔符设为制表符,完全匹配pdb文件的字段分割规则,避免内容中的空格干扰字段识别
  • 单个pdb文件仅调用一次awk处理,所有字段提取完成后统一输出一行,大幅提升执行效率
  • 输出直接使用标准制表符分隔、默认换行符收尾,完全符合TSV格式规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:36:08