我试图插入一行文字;
include /etc/nginx/sites-enabled/*;
在单词之后的下一行;
for more information.
在我的/etc/nginx/nginx.conf中使用以下命令
sudo sed '/for more information.'/a include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf
但是每次我运行它都会返回
>
我对这种东西不太好,所以我希望有人可以帮助我。
干杯,
答案 0 :(得分:2)
删除第二个单引号。这是多余的:
sudo sed '/for more information./a include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf
此外,由于.
匹配任何字符,并且您可能希望它只匹配一个句点,请将其转义为:
sudo sed '/for more information\./a include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf
或者这个:
sudo sed '/for more information[.]/a include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf
答案 1 :(得分:1)
您的'
命令中存在虚假sed
。相反,你需要:
sudo sed -i '/for more information./a include /etc/nginx/nginx.conf' \
/etc/nginx/nginx.conf
(请参阅Johns的答案,因为.
如果有可能会转义,例如"for more information.stuff"
在结束.
之后有信息
您还应该添加-i
选项来编辑/etc/nginx/nginx.conf
。