我有一个xml文件,我需要取消注释一行。 我通过sed命令这样做。
<!-- <file file="${result.file}"/> -->
我使用命令
sed -i '/file="${result.file}/s/<!--//' file.xml
sed -i '/file="${result.file}/s/-->//' file.xml
这有效但我在想如何组合这些命令并仅用一个sed命令替换。
答案 0 :(得分:2)
应该是:
sed 's#<!-- \(<file file="${result.file}"/>\) -->#\1#' file
我正在将评论的内容捕获到捕获组中。在替换模式中,我只是输出该匹配组的内容并省略comment-start,comment-end
答案 1 :(得分:1)
您可以链接多个sed
命令,以;
字符分隔。所以你可以把你的Q重写为
sed -i '/file="${result.file}/s/<!--// ; /file="${result.file}/s/-->//' file.xml
IHTH