Простая команда командной строки 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, так как есть много угловых случаев для оценки.
Кроме того, я не хочу изобретать велосипед, и я сомневаюсь, что я первый, кто ищет решение этой проблемы.