【问题标题】:Using SED Editing single xml element and splitting into two?使用 SED 编辑单个 xml 元素并拆分为两个?
【发布时间】:2020-02-14 16:06:17
【问题描述】:

我目前有以下 xml,但无法处理包含在单个元素中的日期和时间。

<data>
    <StartDateTime>2019-10-19T12:00:00Z</StartDateTime>
</data>

但希望它输出为:

<data>
   <date>2019-10-19</date>
   <time>12:00:00Z</time>
</data>

是否可以使用 sed 来改变它?

【问题讨论】:

标签: xml sed


【解决方案1】:

@Cyrus 说对了[X]HTML cannot be parsed with a regex

但如果您确定输入将始终如下所示,并且由于输入没有那么复杂,您实际上可以使用 sed 来完成:

sed -E 's|<StartDateTime>([0-9]{4}-[0-9]{2}-[0-9]{2})T([0-9]{2}:[0-9]{2}:[0-9]{2}[A-Z])</StartDateTime>|<date>\1</date>\n    <time>\2</time>|g'

此表达式使用捕获组,您可以稍后将其 reference 替换为 '\' 后跟组的索引,在本例中为 \1\2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多