gpt4 book ai didi

linux - 简单的 Linux 命令行命令,用于修改类似 INI 的配置文件中的选项

转载 作者:IT王子 更新时间:2023-10-29 00:39:20 28 4
gpt4 key购买 nike

我正在寻找一个通用的命令行解决方案,它允许我在配置文件(类似 INI 的格式)中添加或修改配置选项。

大多数 Linux 配置文件使用类似 INI 的格式,以 #; 作为注释,并带有 option=value

我主要是在寻找可以获取文件名、选项和值的东西,并且会更改配置以匹配它。

我想用它来写一些自动部署脚本。我可以毫无问题地使用默认情况下未安装在 Debian 或 Ubuntu 上的工具,只要它们确实存在于默认分发存储库中即可(如果需要,我可以执行 apt-get install xxx)。

示例:change-config/etc/default/nginx ULIMIT '"-n 4096"'

预期的结果是在 nginx 文件中包含 ULIMIT="-n 4096"。显然,如果它确实已经存在并且具有相同的值,那么它应该什么也不做。如果它存在,注释旧行并添加新行就可以了。

请注意,这些配置文件的参数之间可以有空格/制表符,因此如果您有 ULIMIT = "..." 仍然是相同的命令。这就是为什么我一直在寻找比 sed 更好的东西,因为有很多极端情况需要评估。

另外,我不想重新发明轮子,我怀疑我是第一个寻找解决此类问题的人。

最佳答案

git config实际上是一个半通用的 INI 接口(interface)。

❱ git config --file=/etc/default/nginx somegroup.ULIMIT '-n 4096'
❱ cat /etc/default/nginx
[somegroup]
ULIMIT = -n 4096
❱ git config --file=/etc/default/nginx somegroup.ULIMIT
"-n 4096"

不过,它不支持添加顶级键。所有键都必须放在 INI 样式组中,因此是“somegroup”。以上。这使得它不适合你的任务,但我想我会在这里提到它,以便其他人在这里找到他们的方式。

关于linux - 简单的 Linux 命令行命令,用于修改类似 INI 的配置文件中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22834680/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com