当字符串包含“时,用bash文件中的字符串替换字符串”/&引用;

当字符串包含“时,用bash文件中的字符串替换字符串”/&引用;,bash,replace,Bash,Replace,我有一个可执行文件,正在这里寻找kanwadict /usr/local/share/kakasi/kanwadict 它应该什么时候进去 /home/mrhowtos/public_html/share/kakasi/kanwadict 所以我想替换所有的 "/usr/local/share/kakasi/kanwadict" 在可执行文件中,使用 "/home/mrhowtos/public_html/share/kakasi/kanwadict" 而且,我没有权限写它要找的地方

我有一个可执行文件,正在这里寻找kanwadict

/usr/local/share/kakasi/kanwadict 
它应该什么时候进去

/home/mrhowtos/public_html/share/kakasi/kanwadict 
所以我想替换所有的

"/usr/local/share/kakasi/kanwadict"
在可执行文件中,使用

"/home/mrhowtos/public_html/share/kakasi/kanwadict"
而且,我没有权限写它要找的地方,所以我不能只移动它要找的文件

我找到了要查找和替换的cmd,但其分隔符为“/”


所以这对我来说不起作用,有没有其他命令可以起作用

在sed中使用类似于
#
的可选分隔符:

sed -i.bak 's#old-word#new-word#g' *.txt
对于您的情况,它将是:

sed -i.bak 's#/usr/local/share/kakasi/kanwadict#/home/mrhowtos/public_html/share/kakasi/kanwadict#g' *.txt

您需要像
\/
那样转义
/
字符

sed -i 's/\/usr\/local\/share\/kakasi\/kanwadict/\/home\/mrhowtos\/public_html\/share\/kakasi\/kanwadict/g' *.txt

如果您谈论的是二进制可执行文件,那么简单的查找和替换将不起作用。是否无法使用命令行参数或环境变量覆盖它要查找的位置?
sed -i 's/\/usr\/local\/share\/kakasi\/kanwadict/\/home\/mrhowtos\/public_html\/share\/kakasi\/kanwadict/g' *.txt