Xpathとシェル ツールを使用したソリューション:
XML サンプル:
$ cat sample.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<doc>
<date>2011-09-30</date>
</doc>
xmllint
とXpathで日付を取得する:
$ dat=$(xmllint --xpath '/doc/date/text()' sample.xml )
$ echo $dat
2011-09-30
ここで、日付の形式を変換します:
$ new_dat=$(date -d "$dat" "+%B %d")
(代わりに現在の日付が必要な場合は、 を使用してくださいnew_dat=$(date "+%B %d")
)
xml を次のように編集しxmlstarlet
ます。
$ xmlstarlet edit -L -u "/doc/date" -v "$new_dat" sample.xml
ついに
$ cat sample.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<doc>
<date>septembre 30</date>
</doc>