如何在配置文件中的特定节中添加一行?

如何在配置文件中的特定节中添加一行?

我的配置文件server.conf具有以下格式:

[general]
setting1=sdfdsf
setting2=asdfadsf

[ssl]
setting1=sadfsdf
setting2=sdfadsfkljasdf

[general]如何使用 Bash 脚本向节添加附加设置?

答案1

你可以这样做sed

$ sed 's/^\[general\]/\[general\]\nnew=setting/' file 

在.new=setting后面添加的使用将会到位并创建一个以确保安全。[general]sed -i.bak ... filefile.bak

答案2

这似乎主要是在 stackoverflow 上回答的:

https://stackoverflow.com/questions/6284518/how-to-insert-a-line-using-sed-before-a-pattern-and-after-a-line-number

基本上,它是 SED 或 AWK 和一些正则表达式的工作。

答案3

您可以尝试如下方法吗

cat server.conf
[general]
setting1=sdfdsf
setting2=asdfadsf

[ssl]
setting1=sadfsdf
setting2=sdfadsfkljasdf

sed  '/general/,/^$/s/^$/setting3=new_entry\n/g' server.conf

cat server.conf
[general]
setting1=sdfdsf
setting2=asdfadsf
setting3=new_entry

[ssl]
setting1=sadfsdf
setting2=sdfadsfkljasdf

相关内容