【问题标题】:Replace a XML pattern using SED [duplicate]使用 SED 替换 XML 模式 [重复]
【发布时间】:2017-03-07 15:03:41
【问题描述】:

我有以下 XML

<defns:Code typeCode="Name">
John
</defns:Code>
<defns:Code1 typeCode="ID">
12345
</defns:Code1>
<defns:Code2 typeCode="address">
Addresss 1234
</defns:Code2>
<defns:Text typeCode="Name">
Doe
</defns:Text>
<defns:Text2 typeCode="ID">
 123
</defns:Text2>
<defns:Text3 typeCode="Address">
Address 4567
</defns:Text3>

等等 文件中的元素 Code[1..n],Text[1..n] 必须替换为 Code

<defns:Code typeCode="Name">
John
</defns:Code>
<defns:Code typeCode="ID">
12345
</defns:Code>
<defns:Code typeCode="address">
Addresss 1234
</defns:Code>
<defns:Text typeCode="Name">
Doe
</defns:Text>
<defns:Text typeCode="ID">
 123
</defns:Text>
<defns:Text typeCode="Address">
Address 4567
</defns:Text>

这可以使用 SED 或 AWK 来完成吗?非常感谢任何帮助!

【问题讨论】:

  • 不要使用基于正则表达式的工具来解析或操作 XML。

标签: xml awk sed


【解决方案1】:

我会使用 sed:

s@\(</*defns:Code\)[0-9]*@\1@

通过仅用前缀替换前缀加上数字来去除尾随数字。

【讨论】:

    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2017-12-12
    相关资源
    最近更新 更多