使用sed将带有斜杠的已定义变量的空格替换为空格

NPB*_*NPB 11 unix bash sed

我试图用sed替换带有定义变量的空格的行.

例如,

我想用$ lan替换'a dumb string',并且lan ="〜/ afile.py

我认为这条线是

sed "s/a dumb string/$lan/g" file.txt
Run Code Online (Sandbox Code Playgroud)

但是这会在file.txt中将'哑字符串'部分留空.

我的问题似乎很简单.任何帮助深表感谢.

NPB*_*NPB 13

我确定因为我的@lan变量中有斜杠,我需要使用sed命令:

例如

sed "s:a dumb string:$lan:g" file.txt
Run Code Online (Sandbox Code Playgroud)

这可能是一个新手的错误,但我对sed并不熟悉.谢谢您的帮助.


Fat*_*ror 11

sed我不知道你传递了一个变量 - 它将被解释为你的正则表达式的另一部分.如果您的替换包含斜杠,最简单的方法是使用备用分隔符char,如下所示:

sed "s|a dumb string|$lan|g" file.txt
Run Code Online (Sandbox Code Playgroud)


Vid*_*til 8

有时搜索字符串中的空格不起作用,因此需要在 centos 中使用 [[:space:]]。

    sed -i 's/User[[:space:]]daemon/User apache/' httpd1.conf
Run Code Online (Sandbox Code Playgroud)