下面是XML文件中的节点。如何使用Unix脚本或命令取消对第一次出现的mainHost的注释?
<!-- Host without authentication -->
<!-- <mainHost> <hostName>test.com</hostName> <httpPort>80</httpPort>
</mainHost> -->
<!-- Host with authentication userId: User name of Host server Password:
-->
<!-- <mainHost> <hostName>127.0.0.1</hostName> <httpPort>80</httpPort>
<userId>username</userId> <password>password</password>
</mainHost> -->我尝试了下面的命令,有不同的变化,但这似乎行不通。
sed '0,/<!-/{s/<!- //}‘/test.xml
我期望低于产出
<!-- Host without authentication -->
<mainHost> <hostName>test.com</hostName> <httpPort>80</httpPort>
</mainHost>
<!-- Host with authentication userId: User name of Host server Password:
-->
<!-- <mainHost> <hostName>127.0.0.1</hostName> <httpPort>80</httpPort>
<userId>username</userId> <password>password</password>
</mainHost> -->谢谢
发布于 2015-07-07 17:08:36
您在正确的轨道上(假设必须使用sed )。
创建一个具有以下内容的文件(例如script.sed):
0,/<\/mainHost>/{
/<mainHost>/,/<\/mainHost>/{
s/<!--//
s/-->//
}
}运行sed -f script.sed FILE.xml。
请注意,这个解决方案很难推广。sed可能不是完成任务的最佳工具。
https://stackoverflow.com/questions/31169585
复制相似问题