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

使用awk或shell对分隔文件嵌套分隔的第37字段求和并追加到行尾

实现方案

直接使用awk内置的split()函数拆分嵌套字段即可完成求和与追加,完整命令如下:

awk 'BEGIN { FS=OFS="|" } 
{
    sum = 0
    # 拆分第37个字段,以^为分隔符存入数组arr
    split($37, arr, "^")
    # 遍历数组累加数值
    for (i=1; i<=length(arr); i++) {
        sum += arr[i]
    }
    # 保留两位小数,和示例输出格式对齐
    sum = sprintf("%.2f", sum)
    # 打印原行+求和结果
    print $0, sum
}' 输入文件 > 输出文件

命令说明

  • BEGIN { FS=OFS="|" }:预设输入、输出字段分隔符均为|,保证追加的求和结果和原有字段格式统一
  • split($37, arr, "^"):将第37个字段按^拆分后存入数组arr
  • 累加逻辑支持1到上百个嵌套数值的场景,无数量限制

可选操作

如果需要直接修改原文件(操作前建议备份),可使用GNU awk的原地修改参数:

gawk -i inplace 'BEGIN { FS=OFS="|" }{sum=0;split($37,arr,"^");for(i=1;i<=length(arr);i++) sum+=arr[i];sum=sprintf("%.2f",sum);print $0,sum}' 目标文件

测试验证

针对你提供的完整示例行,第37个字段的嵌套数值求和结果为136.16,会自动追加到行尾,符合预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 18:36:05