Bash脚本使用sed查找一行WITH括号

时间:2018-02-09 00:32:11

标签: 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

但是当我运行它时,它似乎在第二行插入行,而不是在显示[curl]的行之后

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

方括号用于生成字符类。你需要逃脱它们。

sed '/\[curl\]/a curl.cainfo = /etc/ssl/certs/ca-certificates.crt'

答案 1 :(得分:0)

更简单的方式

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

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