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

Bash脚本实现多流两列数组合并为索引对齐的结构化表格

解决方案

直接使用Bash+awk组合即可实现需求,代码如下:

# 生成对齐后的表格,如需制表符分隔的结构化数据(更适合后续awk处理),删除末尾的 | column -t 即可
merged_table=$(
for i in "${res[@]}"; do echo "$i"; done | awk '
BEGIN {
    stream_cnt = 0
}
/^#/ {
    stream_cnt++
    stream_names[stream_cnt] = substr($0, 2)
    next
}
{
    sec = $1
    val = $2
    data[sec][stream_cnt] = val
    all_sec[sec] = 1
}
END {
    # 输出表头,不需要可直接删除以下4行
    printf "#Sec\t"
    for (i=1; i<=stream_cnt; i++) {
        printf "%s\t", stream_names[i]
    }
    printf "\n"
    # 按秒数升序输出内容
    sec_num = asorti(all_sec, sorted_sec, "@ind_num_asc")
    for (i=1; i<=sec_num; i++) {
        cur_sec = sorted_sec[i]
        printf "%s\t", cur_sec
        for (s=1; s<=stream_cnt; s++) {
            printf "%s\t", (cur_sec in data && s in data[cur_sec] ? data[cur_sec][s] : "")
        }
        printf "\n"
    }
}
' | column -t
)

适配说明

  • 1050个流、单流100300行的量级完全在awk处理能力范围内,无性能压力
  • 如不需要表头,直接删除END块中输出表头的4行代码即可
  • 若后续要计算移动平均值,可直接在上述awk脚本的END块中追加计算逻辑,无需将表格存为变量再二次调用awk,进一步提升处理效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:03:05