当字符串包含“时,用bash文件中的字符串替换字符串”/&引用;
我有一个可执行文件,正在这里寻找kanwadict当字符串包含“时,用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" 而且,我没有权限写它要找的地方
/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