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

如何用awk/bash解析MELTING多行结果文本并处理缺失熔温字段

基于awk的MELTING结果解析方案

实现思路

逐行扫描文件,以The MELTING results are作为每个条目块的分隔标记,每次遇到新块时先输出上一个块的解析结果,再重置三个字段的默认值为NA,后续匹配到对应字段行时再更新值,确保缺失字段自动填充NA,避免条目错位。

完整awk脚本

BEGIN {
    OFS = "\t"
    # 如需自定义输出分隔符,可修改上一行的\t为其他符号,比如逗号改为","
    print "Enthalpy", "Entropy", "Melting_temperature"
}
# 匹配新条目块起始
/The MELTING results are/ {
    if (block_num > 0) {
        print enthalpy_val, entropy_val, tm_val
    }
    # 重置字段默认值为NA
    enthalpy_val = "NA"
    entropy_val = "NA"
    tm_val = "NA"
    block_num++
    next
}
# 匹配焓值行
$1 == "Enthalpy" {
    sub(/^Enthalpy : /, "")
    enthalpy_val = $0
    next
}
# 匹配熵值行
$1 == "Entropy" {
    sub(/^Entropy : /, "")
    entropy_val = $0
    next
}
# 匹配熔解温度行
$1 == "Melting" && $2 == "temperature" {
    sub(/^Melting temperature : /, "")
    tm_val = $0
    next
}
END {
    # 输出最后一个块的内容
    if (block_num > 0) {
        print enthalpy_val, entropy_val, tm_val
    }
}

使用方法

  1. 将上述脚本保存为parse_melting.awk
  2. 运行命令解析文件:
awk -f parse_melting.awk 你的输入文件路径 > 输出文件路径.tsv

输出说明

  • 每行对应一个MELTING条目,三个字段按顺序排列,缺失字段自动填充为NA
  • 默认输出为制表符分隔的tsv格式,可直接导入Excel或其他数据分析工具处理
  • 字段保留原文所有单位信息,如需仅保留特定单位可修改对应行的sub规则截取数值部分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:36:04