使用Shell脚本

时间:2015-06-03 07:56:09

标签: xml shell unix

我想使用Shell脚本更改值(即value="false")。我怎么能这样做呢。请提供任何建议。

我尝试/使用的内容:

我用了命令 - > sed 's/true/false/g' ml.xml

问题:

但所有true内容都已更改。

我想要的是什么:

我的要求是只需更改某个特定的内容,而不是每个内容。

之前:property name="s" value="true"

之后:property name="s" value="false"

ml.file

<bean id="a"
    class="com.s.analyzer.Analyzer" scope="singleton">
    <!--  *** CHANGE to true for first daily run, otherwise false *** -->
    <property name="s" value="true" />

    <property name="a1l" value="2.5" />
    <property name="mi" value="2000" />
    <property name="ma" value="1" />
</bean>

2 个答案:

答案 0 :(得分:0)

这是完全匹配(sed -e "s/\(<property name=\"s\" value=\"\)true/\1false/g" file ):

sed  -i "s/\(<property name=\"s\" value=\"\)true/\1false/g"  file

要更改文件:

<property name="s" value="true" />

如果您想要与sed -e "s/\(<property name=\"s\" value=\"\)true\(\" \/>\)/\1false\2/g" file 完全匹配,那么:

G

答案 1 :(得分:0)

使用xml工具会更好。例如,请参阅xmlstarlet如何执行此操作:

xmlstarlet ed --ps --inplace --update '//bean/property[@name="s"]/@value' -v false ml.xml