问题“/”和“。” sed中的字符

时间:2013-10-29 12:32:21

标签: bash sed

当我尝试将变量(包含路径)传递给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从变量获取路径并且它包含特殊字符?

1 个答案:

答案 0 :(得分:2)

有两种方法可以解决这个问题:

逃离模式中的/

sed '/\/bbb/d' filename

提供不同的分隔符,但需要对分隔符进行转义(而不是模式中的/):

sed '\#/bbb#d' filename