我想使用Shell脚本更改值(即value="false"
)。我怎么能这样做呢。请提供任何建议。
我尝试/使用的内容:
我用了命令 - > sed 's/true/false/g' ml.xml
。
问题:
但所有true
内容都已更改。
我想要的是什么:
我的要求是只需更改某个特定的内容,而不是每个内容。
之前:property name="s" value="true"
之后:property name="s" value="false"
<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>
答案 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