我正在尝试使用sed替换带有定义变量的空格的行。
例如,
我想用$ lan替换'哑字符串',并且lan =“〜/ afile.py
我认为该行将是
sed "s/a dumb string/$lan/g" file.txt
但是这会在file.txt中将'哑字符串'部分留空。
我的问题似乎很简单。任何帮助深表感谢。
答案 0 :(得分:12)
我确定因为我的@lan变量中有斜杠,我需要使用sed命令:
例如
sed "s:a dumb string:$lan:g" file.txt
这可能是一个新手的错误,但我对sed并不熟悉。谢谢你的帮助。
答案 1 :(得分:11)
sed
不知道你传递了一个变量 - 它将被解释为你的正则表达式的另一部分。如果您的替换包含斜杠,最简单的方法是使用备用分隔符char,如下所示:
sed "s|a dumb string|$lan|g" file.txt
答案 2 :(得分:2)
搜索字符串中的某些空间不起作用,因此需要在centos中使用[[:space:]]。
sed -i 's/User[[:space:]]daemon/User apache/' httpd1.conf