UNIX:如何翻译/&引用;使用sed搜索和替换命令时

UNIX:如何翻译/&引用;使用sed搜索和替换命令时,unix,sed,Unix,Sed,在上面的代码中,我有一个问题 如果变量“path”是一个动态变量,允许用户自定义 e、 例如,用户将“路径”定义为/usr/local/ 然后我传递这个值进行搜索和替换 但是,如果我在没有任何干预的情况下传递此值 程序可将其视为echo$file | sed s//usr/local/''/g 我试图使用tr-s'/'\/',但没有成功 我想问你如何解决这种情况 谢谢。sed“s”命令的分隔符不需要是/;sed将使用“s”之后的任何内容作为分隔符: 很高兴听到这个消息。如果能解决你的问题,你可以

在上面的代码中,我有一个问题

如果变量“path”是一个动态变量,允许用户自定义

e、 例如,用户将“路径”定义为/usr/local/

然后我传递这个值进行搜索和替换

但是,如果我在没有任何干预的情况下传递此值

程序可将其视为
echo$file | sed s//usr/local/''/g

我试图使用
tr-s'/'\/'
,但没有成功

我想问你如何解决这种情况


谢谢。

sed“s”命令的分隔符不需要是
/
;sed将使用“s”之后的任何内容作为分隔符:


很高兴听到这个消息。如果能解决你的问题,你可以考虑接受这个答案。
path=/tmp/a1

file=/tmp/a1/a.txt

file_without_path=`echo $file | sed s/'\/tmp\/a1'/''/g`

echo $file_without_path
sed s%'/tmp/a1'%''%g  ## no need to worry about escaping slashes any more