当我尝试将变量(包含路径)传递给sed时,我没有什么问题。 如果变量不包含“/”字符,它可以很好地工作。 脚本中的简单代码,例如:
sed "$1/d" $conf
file $ conf包含下一行
aaa
/bbb
.ccc
当我尝试放:
scriptName aaa
一切顺利。但是,如果我把
scriptName /bbb
我得到了
sed:无法找到跳转到“bb”/ d
的标签
消息。我也试试
scriptName \/bbb
scriptName //bbb
最后一刻
sed:-e表达式#1,字符9:未知命令:`/'
如何使用sed从变量获取路径并且它包含特殊字符?
答案 0 :(得分:2)
有两种方法可以解决这个问题:
逃离模式中的/
:
sed '/\/bbb/d' filename
提供不同的分隔符,但需要对分隔符进行转义(而不是模式中的/
):
sed '\#/bbb#d' filename