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

如何从XML文件中提取dur子串对应数值并对结果求和

解决方案

方法1:基于grep+awk实现(适配你当前学习的工具栈)

你之前的grep命令已经接近需求,只需要调整匹配规则,再用awk做数值累加即可,完整命令如下:

grep -o 'dur="[^"]*"' 你的XML文件名.xml | awk -F '"' '{sum += $2} END {print "dur总和:" sum}'

命令说明:

  • grep -o 'dur="[^"]*"':精准匹配所有dur="数值"格式的内容,输出的每一行格式为dur="xxx",避免匹配到其他无关的dur字符串
  • 管道符|将grep的输出传给awk处理
  • awk -F '"'指定双引号为字段分隔符,每一行被双引号拆分后,第二字段$2就是我们要的数值
  • awk内部自动用sum变量累加所有数值,所有行处理完成后输出最终总和
    用你提供的测试XML运行,最终输出结果为6592,和手动计算的结果一致。

方法2:基于XML专用解析工具实现(更稳妥,无格式匹配错误风险)

如果后续要处理的XML格式可能变化(比如属性换行、顺序调整),推荐用系统自带的XML解析工具xmllint处理,避免grep正则匹配出错,命令如下:

xmllint --xpath 'sum(//*[local-name()="Material"]/@dur)' 你的XML文件名.xml

该命令直接通过XPath语法提取所有Material标签的dur属性,自动求和输出,不需要额外做数值处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 03:27:01