【发布时间】:2018-07-27 13:47:34
【问题描述】:
我有一个文件,内容如下:
<root>
<appender name="abc">
some lines
</appender>
<appender name="def">
some lines
</appender>
<appender name="qaz">
some lines
</appender>
</root>
我想在下面发表评论:
<!--
<appender name="def">
some lines
</appender>-->
做了什么
sed -i '/<appender name="def"/s/^/<--/;/<\/appender>/s/$/-->/' file.xml
这会在<appender name="def"> 之上添加<!--,但--> 会添加到存在</appender> 的所有行上。我只想在</appender> 上添加-->,它会在第一次匹配完成后进行搜索。
输出应该如下:
<root>
<appender name="abc">
some lines
</appender>
<!--
<appender name="def">
some lines
</appender>-->
<appender name="qaz">
some lines
</appender>
</root>
我尝试了很多类似的问题,但找不到。
【问题讨论】:
-
使用支持 XML 的命令行工具(例如 xmlstarlet)可以轻松删除元素。注释掉更难。见stackoverflow.com/questions/48671491/…。