私は次のようなxmlプロパティを持っています:
<property name="foo" value="bar"/>
そして、値「バー」を他のものに変更したいと思います。そうするための標準的なコマンドラインツールはありますか? sed をうまくプレイするのに苦労しています。どのキャラクターをエスケープする必要があるのか わかりません。
私は次のようなxmlプロパティを持っています:
<property name="foo" value="bar"/>
そして、値「バー」を他のものに変更したいと思います。そうするための標準的なコマンドラインツールはありますか? sed をうまくプレイするのに苦労しています。どのキャラクターをエスケープする必要があるのか わかりません。
使用する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"/>
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 宣言行を省略するために追加します。