我有一个看起来像这样的字符串:
<cell decimals="3" number="0.99916218350572" text=",999"/>
我希望将其更改为
<cell decimals="3" number="9.991622E-01" text=",999"/>
我是bash的新手。经过研究和实验,我已经完成了
cat myXMLfile | sed "s/\(number\=\)\(\"[0-9]*[\.\][0-9]*[\-]*e*\-*[0-9]*\)/number\=\2/g"
但是\ 2不是格式化的值。我希望将\ 2中存储的值格式化为“printf%.6E”。
对不起我在这方面的无知,并提前感谢帮助我了解更多信息。
答案 0 :(得分:1)
使用awk:
> s='<cell decimals="3" number="0.99916218350572" text=",999"/>'
> awk -F '"' '{$4=sprintf("%.6E", $4)} 1' OFS='"' <<< "$s"
<cell decimals="3" number="9.991622E-01" text=",999"/>