2013-11-25 47 views
2

我有一個字符串,它看起來是這樣的:更改字符串格式的sed的語句內的

<cell decimals="3" number="0.99916218350572" text=",999"/> 

,我想將其更改爲

<cell decimals="3" number="9.991622E-01" text=",999"/> 

我是新來砸。經過研究和實驗,我得到了

cat myXMLfile | sed "s/\(number\=\)\(\"[0-9]*[\.\][0-9]*[\-]*e*\-*[0-9]*\)/number\=\2/g" 

但\ 2不是格式化的值。我希望將存儲在\ 2中的值格式化爲「printf%.6E」格式。

對不起,我在這方面的無知,並提前感謝幫助我瞭解更多。

回答

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"/> 
+1

這看起來像它會做的工作。非常感謝! – user3033598

+0

不客氣。 – anubhava