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

如何用sed将XML中values的空格分隔值转为A/B/C属性格式?

解决方案

方法一:多步sed替换

基于你已有的命令,追加两次替换即可完成转换:

sed -e 's#<values=#<values A="#' -e 's# # B="#' -e 's# # C="#' input.txt
  • 第一步:将<values=替换为<values A=",和你最初的命令一致
  • 第二步:把第一个空格替换为 B=",给第二个数值加上B属性标记
  • 第三步:把第二个空格替换为 C=",给第三个数值加上C属性标记

方法二:精准分组匹配替换

如果要避免行内多余空格的干扰,可以用sed的正则分组精准捕获三个数值:

sed 's#<values=\([^ ]*\) \([^ ]*\) \([^ ]*\) />#<values A="\1" B="\2" C="\3" />#' input.txt
  • \([^ ]*\):匹配单个非空格的数值片段,并用括号分组保存
  • \1/\2/\3:在替换时分别引用三个分组的内容,直接套入目标属性格式

转换后效果

执行上述任一命令后,输入文本会被转换为你需要的格式:

<data>
   <values A="11.0200004578" B="-1.17999994755" C="-16.1200008392" />
   <values A="97.0999984741" B="-0.449999988079" C="2.16000008583" />
   <values A="41.7299995422" B="60.6699981689" C="43.75" />
</data>

内容的提问来源于stack exchange,提问作者M-Rick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:05:20