Назад | Перейти на главную страницу

Как добавить строку к определенному разделу в файле конфигурации?

Мой файл конфигурации, server.conf, имеет следующий формат:

[general]
setting1=sdfdsf
setting2=asdfadsf

[ssl]
setting1=sadfsdf
setting2=sdfadsfkljasdf

Как добавить дополнительную настройку в [general] строфа с использованием сценария Bash?

Вы могли бы сделать это с sed

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

что добавляет new=setting после [general]. с помощью sed -i.bak ... file сделает это на месте и создаст file.bak для безопасности.

Можете ли вы попробовать, как указано ниже

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

Кажется, что на это в основном ответят в stackoverflow:

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

В основном это работа для SED или AWK и небольшого регулярного выражения.