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

如何从HTML文件中提取<RfcNumber>值并赋值给变量

提取标签内的数字并赋值给变量

你的sed命令逻辑错误,它是删除指定数字及后续内容,而非提取标签内的目标值。以下是几种可行的解决方案:

方法1:使用sed的捕获组

利用sed的正则捕获组匹配标签内容,仅提取目标数字:

rfc_number=$(sed -n 's/.*<d:RfcNumber>\([0-9]*\)<\/d:RfcNumber>.*/\1/p' test2.html)
echo $rfc_number

解释:

  • -n:只输出匹配到的行
  • s/.*<d:RfcNumber>\([0-9]*\)<\/d:RfcNumber>.*/\1/p:
    • .* 匹配标签前的所有内容
    • \([0-9]*\) 捕获标签内的数字(括号需转义)
    • \1 引用捕获到的第一组内容,p 输出该行

方法2:使用grep的Perl兼容正则(PCRE)

如果你的grep支持-P参数(大部分Linux发行版默认支持),可以更简洁地提取:

rfc_number=$(grep -oP '<d:RfcNumber>\K[0-9]+' test2.html)
echo $rfc_number

解释:

  • -o:只输出匹配到的部分
  • -P:启用PCRE正则
  • \K:忽略前面匹配的<d:RfcNumber>,只保留后面的数字部分

方法3:使用awk

通过指定分隔符提取目标字段:

rfc_number=$(awk -F'<d:RfcNumber>|</d:RfcNumber>' '{print $2}' test2.html)
echo $rfc_number

解释:

  • -F'<d:RfcNumber>|</d:RfcNumber>':将标签作为分隔符
  • print $2:输出分割后的第二个字段,即标签内的数字

执行任意一种方法后,rfc_number变量就会存储提取到的数字(示例中的1200000910)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:24:25