使用sed查找带括号的行的Bash脚本

使用sed查找带括号的行的Bash脚本,bash,sed,Bash,Sed,早上好 我正在写一个脚本来启动服务器 我需要做的是找到包含以下文本的行 [curl] 然后直接在下一行,我需要插入 curl.cainfo = /etc/ssl/certs/ca-certificates.crt 我目前的情况如下: sudo sed '/[curl]/a curl.cainfo = /etc/ssl/certs/ca-certificates.crt' /etc/opt/remi/php72/php.ini 但当我运行它时,它似乎会在每一行上插入一行,而不仅仅是在显示[c

早上好

我正在写一个脚本来启动服务器

我需要做的是找到包含以下文本的行

[curl]
然后直接在下一行,我需要插入

curl.cainfo = /etc/ssl/certs/ca-certificates.crt
我目前的情况如下:

sudo sed '/[curl]/a curl.cainfo = /etc/ssl/certs/ca-certificates.crt' /etc/opt/remi/php72/php.ini
但当我运行它时,它似乎会在每一行上插入一行,而不仅仅是在显示[curl]的行之后


任何帮助都会很棒。

方括号用于生成角色类。你需要逃离他们

sed '/\[curl\]/a curl.cainfo = /etc/ssl/certs/ca-certificates.crt'
简单的方法

echo "curl.cainfo = ..." >> /etc/opt/remi/php72/php.d/override.ini

因为更改提供的php.ini;)总是一个坏主意

啊,这是有道理的。。。谢谢你,效果很好!