【发布时间】:2017-02-25 06:08:51
【问题描述】:
我有一个 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'
我该怎么做?
【问题讨论】:
-
将
内容替换为 2016/09/21 -
这不是 HTML,这是 XML。无论如何,使用 XML 解析器。
-
只是您尝试的命令中的一个错字:
*应该是.* -
成功了,非常感谢 Sundeep
-
@lwhuang,仅用于“作品”的价值非常低的情况。
sed无法理解 XML 语法:例如,如果在<FromDate和>之间有换行符或空格,您的文档仍然是完全有效的 XML(对于任何兼容的解析器具有完全相同的含义),或者您的文件中任何地方都没有换行符,但是这些更改中的任何一个都会弄乱您基于sed的方法。
标签: regex xml bash replace sed