Sed错误:sed:-e表达式#1,第25个字符:对`s'的未知选项

5

我有一个名为.config的文件,其中有一行:
projdir name_of_the_projdir
我需要将name_of_the_projdir替换为我的变量。我尝试使用以下方法进行替换:

sed -i 's/^projdir .*$/projdir '$projdir'/' .le/.config

但我遇到了一个错误
sed: -e expression #1, char 25: unknown option to `s'

有人知道该怎么做吗?我试图用双引号替换第一个和最后一个单引号,并用@替换第一个和最后一个/,但仍然不起作用。

1个回答

5
你会收到该错误,因为替换命令中使用的 / 分隔符与目录分隔符相冲突。你可以将它们更改为其他内容:
sed -i 's!^projdir .*$!projdir '$projdir'!' .le/.config

谢谢!我没有考虑到变量中的斜杠(在我的情况下它们是URL),而且无论我在其他地方逃逸多少东西都没有帮助,这让我很疯狂。 - Max Starkenburg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接