我有一个如下所示的 JSON 文件:
{
"key1": "value1",
"key2": "value2",
...
"keyn": "valuen"
}
没有数组或嵌套对象,只是一个简单的键->值映射。我想使用 jq
将此文件转换为以下格式的纯文本配置文件:
KEY1=value1
KEY2=value2
...
KEYn=valuen
(结果文件中的键应为大写)。我在网上搜索了各种 jq 教程,期望其中包含这样一个明显的(在我看来)示例(至少没有大写),但事实并非如此。我发现的所有教程都使用更复杂的示例,例如从 JSON 文件中提取特定值、处理数组或嵌套结构等。但是,没有简单的 JSON 到文本转换。 man jq
也没有帮助,它不太清楚。你能帮助我获得我想要的结果吗?
注意:它必须使用 jq
完成,而不是任何其他工具,因为它将在可以访问 jq
的脚本中使用,但没有其他工具可以访问处理 JSON 保证存在于系统上。
最佳答案
您可以使用 to_entries
迭代对象中的条目,然后将每个条目格式化为字符串并使用 -r
(--raw-output) 标志,例如所以:
$ cat example.json
{
"key1": "value1",
"key2": "value2",
"keyn": "valuen"
}
$ jq -r 'to_entries[] | (.key | ascii_upcase) + "=" + .value' < example.json
KEY1=value1
KEY2=value2
KEYN=valuen
关于json - 使用 jq 将 JSON 转换为简单的 key=value 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66564551/