将字符串添加到 JSON 文件中的每个键前面

use*_*158 4 bash shell-script json

我有一个 JSON 文件,正在读入 bash 脚本,并且想在每个键前面添加一个固定字符串。

json_文件:

{"key_1": 12, "key_2": 34, "key_3": 56}
Run Code Online (Sandbox Code Playgroud)

通过将字符串添加到每个键来更新此数据的最简洁方法是什么x_

例如,

{"x_key_1": 12, "x_key_2": 34, "x_key_3": 56}
Run Code Online (Sandbox Code Playgroud)

roa*_*ima 7

您可以使用 JSON 解析器来jq解析您的 JSON 文件。这样做的优点是,无论其形状如何,都可以处理有效的 JSON:

\n
jq 'with_entries(.key |= "x_" + .)' <file.json\n
Run Code Online (Sandbox Code Playgroud)\n

输入

\n
{"key_1": 12, "key_2": 34, "key_3": 56}\n
Run Code Online (Sandbox Code Playgroud)\n

输出

\n
{\n  "x_key_1": 12,\n  "x_key_2": 34,\n  "x_key_3": 56\n}\n
Run Code Online (Sandbox Code Playgroud)\n

您可以使用以下命令将 JSON 保留在一行中jq -c \xe2\x80\xa6

\n
{"x_key_1":12,"x_key_2":34,"x_key_3":56}\n
Run Code Online (Sandbox Code Playgroud)\n

该解决方案在文档中作为示例显示jq- 查看man jq并搜索with_entries- 但由于它是参考文档,因此很难找到您不知道如何描述的内容。

\n