当字符串包含“/”时,用bash替换字符串中的字符串

时间:2012-12-08 09:17:41

标签: 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"

另外,我没有权限写它的外观,所以我不能只是移动它寻找的文件。

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

sed -i 's/old-word/new-word/g' *.txt

所以它不能让我这样做,是否有另一个命令可以做到这一点?

2 个答案:

答案 0 :(得分:2)

使用替代分隔符,例如#和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

答案 1 :(得分:0)

您需要转发/字符\/;

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