bash脚本

时间:2016-12-02 08:08:35

标签: xml bash sed

我试图通过比较同一个xml文件中的资源名称选项卡值从xml文件中删除一行,如果我将logfilename设置为Mansing但是当我将值保持为'jdbc / test'时失败,则下面的bash脚本有效。有什么帮助吗?

bash代码:

logfilename="jdbc/test"

sed -i "/\<$logfilename\>/d" /home/test/test.xml

test.xml文件如下:

<a>
<Resource name="jdbc/test" auth="container" url="localhost:8080"
<Resource name="Mansing" auth="container" url="localhost:8080"
</a>

1 个答案:

答案 0 :(得分:1)

jdbc/test包含/,由sed命令解释为分隔符。试着逃避它:

logfilename="jbdc\/test"

或通过在第一个新分隔符前添加\前缀来更改地址中的默认分隔符:

sed -i "\~\<$logfilename\>~d" /home/test/test.xml