CentOS使用sed不能正常插入新的文本行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS使用sed不能正常插入新的文本行相关的知识,希望对你有一定的参考价值。

我正在尝试插入一行文本;

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

但每次我运行它,它只是返回

>

我不太喜欢这种东西,所以我希望有人可以帮助我。

干杯,

答案

删除第二个单引号。这是多余的:

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
另一答案

你的'命令中有一个虚假的sed。相反,你需要:

sudo sed -i '/for more information./a include /etc/nginx/nginx.conf' 
/etc/nginx/nginx.conf

(参见约翰斯的答案,因为如果有可能存在线路,.应该被逃脱,例如"for more information.stuff"在关闭.之后提供信息)

您还应该添加-i选项来编辑/etc/nginx/nginx.conf

以上是关于CentOS使用sed不能正常插入新的文本行的主要内容,如果未能解决你的问题,请参考以下文章

使用 sed 在匹配后插入行

如何在文件顶部添加新的文本行?

sed命令

sed命令介绍

输入的字符代码是啥? [关闭]

什么是保存从图像分割的文本行的matlab代码