1

当我尝试将变量(包含路径)传递给 sed 时,我没有什么问题。如果变量不包含“/”字符,它会很好地工作。脚本中的简单代码,例如:

sed "$1/d" $conf

文件 $conf 包含下一行

aaa 
/bbb  
.ccc

当我尝试放置时:

scriptName aaa

一切正常。但如果我把

scriptName /bbb

我有

sed: 找不到跳转到 `bb"/d 的标签

信息。我也尝试

scriptName \/bbb
scriptName //bbb

最后与

sed:-e 表达式 #1,字符 9:未知命令:`/'

我如何使用 sed 从变量中获取路径并且它包含特殊字符?

4

1 回答 1

2

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

逃避/你的模式:

sed '/\/bbb/d' filename

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

sed '\#/bbb#d' filename
于 2013-10-29T12:35:18.057 回答