【发布时间】:2018-08-29 20:21:59
【问题描述】:
我有一个如下所示的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<Station name="XxXx" >
<Inverter name="0701">
<String name="07.01.01-1">
<Converter sku="31570014-0900 A" sn="2116K000551" mac="548280000227" ts="01"/>
</String>
<String name="07.01.01-2">
<Converter sku="31570014-0900 A" sn="1716K000232" mac="4482800000E8" ts="02"/>
</String>
我需要一个脚本(或更好的 linux 命令),它可以在此文件中找到名称为“07.01.01-1”的字符串,例如,并在 next 行中更改 sn= "2116K000551" 到 sn="11111111",并删除直到行尾的所有内容(意味着 mac="xxx" ts="xx"),除了结束标记 "/>",并保存此文件。我正在尝试使用 sed 来完成,但目前还没有成功。有一个 linux 命令可以做到吗?我非常感谢任何建议。
【问题讨论】:
-
我建议使用 XML/HTML 解析器(xmlstarlet 或类似的东西)。
-
Stack Overflow 不是代码编写服务。请出示您的代码。由于 Stack Overflow 向您隐藏了关闭原因:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。