替换XML标记之间的内容

时间:2016-10-16 02:59:13

标签: regex xml bash replace sed

我有一个带

的XML文件
<RangeType>3</RangeType>
<RangeAmount>1</RangeAmount>
<FromDate>2016/8/12 00:00:00</FromDate>
<ToDate>2016/8/12</ToDate>
<SyncOnSelect>0</SyncOnSelect>
<RunEvery>0</RunEvery>

我想将Fromdate内容(可能是任何日期)替换为2016/09/21,我计划每天都这样做,将其更改为今天

<RangeType>3</RangeType>
<RangeAmount>1</RangeAmount>
<FromDate>2016/09/21</FromDate>
<ToDate>2016/8/12</ToDate>
<SyncOnSelect>0</SyncOnSelect>
<RunEvery>0</RunEvery>

我试过

sed 's/<FromDate>*<\/FromDate>/<FromDate>2016\/09\/21<\/FromDate>/g'

我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用真正的XML解析器,例如XMLStarlet

newValue=$(date '+%Y/%m/%d 00:00:00')
xmlstarlet ed -u '//FromDate' -v "$newValue" \
   <in.xml >out.xml