1

次のようないくつかの数字を持つxmlがあります。

<xml>
<case1>
    <amount>3.140000</amount>
    <amount2>3.0000</amount2>
    <detail>
        <name>something</name>
        <earning>3.1000</earning>
    </detail>
</case1>
<case2>
    <amount>3.10000</amount>
</case2>

xml は 1 行で、次のような正規表現でテストしています。

echo "433.000" | sed -e 's/\([0-9]*\.\)\([1-9]*\)\(0*\)/\1\2/g'

しかし、それは私に 3.00 の 3. のようなものを与えます。私は何も解析しようとはしていません。ゼロを削除するだけです。そしてどういうわけか、私が試しても何もしません:

sed -e 's/\([0-9]*\.\)\([1-9]*\)\(0*\)/\1\2/g' xmlFile.xml

私は正規表現が苦手で、ホストされたサーバーを使用しているため、ライブラリやプログラムをインストールできないため、シェルのみが許可されていることを言及する必要があります。

ありがとう。

4

1 に答える 1

0

以下が機能するはずです。

sed -e 's/\(\.[1-9][1-9]*\)0*/\1/g' -e 's/\.00*//' xmlFile.xml

これにより、次のようになります。

<xml>
<case1>
    <amount>3.14</amount>
    <amount2>3</amount2>
    <detail>
        <name>something</name>
        <earning>3.1</earning>
    </detail>
</case1>
<case2>
    <amount>3.1</amount>
</case2>
于 2012-04-10T18:02:42.077 に答える