我试图通过比较同一个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>
答案 0 :(得分:1)
jdbc/test
包含/
,由sed命令解释为分隔符。试着逃避它:
logfilename="jbdc\/test"
或通过在第一个新分隔符前添加\
前缀来更改地址中的默认分隔符:
sed -i "\~\<$logfilename\>~d" /home/test/test.xml