我试图用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)
有时搜索字符串中的空格不起作用,因此需要在 centos 中使用 [[:space:]]。
sed -i 's/User[[:space:]]daemon/User apache/' httpd1.conf
Run Code Online (Sandbox Code Playgroud)