Простая команда командной строки linux для изменения опции в INI-подобном конфигурационном файле

Я ищу общее решение командной строки, которое позволило бы мне добавить или изменить опцию конфигурации в файле конфигурации (ini-подобный формат).

В большинстве файлов конфигурации linux используется формат INI с символами # и; в качестве комментария и с параметром = значение.

В основном я ищу что-то, что будет принимать имя файла, опцию и значение, и это изменит конфигурацию, чтобы соответствовать этому.

Я хочу использовать это, чтобы написать несколько сценариев автоматического развертывания. У меня нет проблем с использованием инструментов, которые не установлены по умолчанию в Debian или Ubuntu, пока они существуют в репозиториях по умолчанию (как я могу сделать apt-get install xxx, если необходимо)

Пример:change-config /etc/default/nginx ULIMIT '"-n 4096"'

Ожидаемый результат будет иметьULIMIT="-n 4096" внутри файла nginx. Очевидно, что если он уже существует и имеет то же значение, он ничего не должен делать. Если он существует, будет хорошо комментировать старую строку и добавлять новую.

Как примечание, эти файлы конфигурации могут иметь пробелы / табуляции между параметрами, так что если у вас естьULIMIT = "..." по-прежнему та же команда. Вот почему я искал что-то лучше, чем Sed, так как есть много угловых случаев для оценки.

Кроме того, я не хочу изобретать велосипед, и я сомневаюсь, что я первый, кто ищет решение этой проблемы.

Ответы на вопрос(3)

Ваш ответ на вопрос