2

我有一个像这样的 xml 属性:

<property name="foo" value="bar"/>

并且想将值“bar”修改为其他值。任何标准的命令行工具可以做到这一点?我很难让 sed 玩得很好,我不确定我应该逃避哪些角色。

4

2 回答 2

1

使用awk

echo '<property name="foo" value="bar"/>' | awk '{sub(/bar/,"new")}1'
<property name="foo" value="new"/>

另一个版本

echo '<property name="foo" value="bar"/>' | awk -F\" '{$4="new"}1' OFS=\"
<property name="foo" value="new"/>
于 2013-10-03T04:46:50.900 回答
1

xmlstarlet是一个功能相当齐全的 XML 工具。

xmlstarlet ed --update /property/@value -v qux <<END
<property name="foo" value="bar"/> 
END
<?xml version="1.0"?>
<property name="foo" value="qux"/>

添加-O以省略 XML 声明行。

于 2013-10-03T00:48:04.087 回答